浏览器复制Xpath定位失败的原因:

​ ①有的元素没有id,name,class等明显或者唯一属性

​ ②元素id是动态的

​ ③元素定位工具抓取不到(copy–>xpath)

​ ④复制的Xpath是不稳定的

Xpath的思想:

通过路径找节点(元素属性,内容)

Xpath技巧

语法规则

/ 根节点,节点分隔符(完全匹配)

// 任意位置(跨节点寻找)

@ 属性

* 任意元素

. 当前节点

… 父节点

text文本值

②格式

属性://*[@属性=‘属性值’]

文本值://*[text()=‘文本值’]

高级查询

contains模糊查询:contains(@属性/text(),值)

//*[contains(text(),‘院系专业’)]

//*[contains(@href,‘baidu’)]

starts-with():匹配一个属性开始位置的关键字,以xxx开始:属性、文本值,(适用:元素id是动态的)

//*[start-with(@id,‘success’)]

//*[start-with(text(),‘练习’)]

上下级查询

//*[@type=‘password’]/…/…

#去到这个部分的父节点,就是一层一层的往上查找

#适用:寻找的元素不稳定,用它的上下级定位

多种条件精准查找

//*[@class=‘mnav’ and @type=‘password’]

特殊元素:

svg:name属性

//*[name()=‘svg’]