以下演示操作以该网址中的内容为例:https://learn.letskodeit.com/?_ga=2.143454972.85111248.1555037144-697706367.1554889145
一、如果元素的 ID 不唯一,或者是动态的,或者 name 以及 linktext 属性值也不唯一, 对于这样的元素,我们就需要考虑用 xpath 来查找元素了,然后再对元素执行操 作。
二、不管用什么方式查找元素,id、Name、Xpath、css—>都需要在页面上查找到唯一的元素。 都应该只找到一个匹配的 node(节点),除非想要查找一批元素放集合里,然后来操作集合。
三、单右斜线“/”和双右斜线“//”的区别:
单右斜线“/”,在 XPATH 里面任何地方的单右斜代表要查找的元素是挨着上一级节点的子节点中的一个,中间不能跳级。
双右斜线“//”,代表查找下级任何子节点或者任何嵌套子节点中的一个,可以跳级。
四、语法
//tag[@attribute='value']
//查找下级任何子节点
tag:标签
attribute:属性
valuse:属性值
五、页面中的元素不是每一个都有静态的唯一的id,唯一的name,唯一的linktext等,所以我们需要构建有效的xpath来进行查找。
六、操作演示---通过XPath进行定位“longin”
1、例如我们需要定位该网址页面中的“longin”
2、通过XPath进行定位//div/div/div/div/ul/li[2]/a
li[2]表示相同平级节点中第二个li标签
七、绝对路径和相同路径
1、绝对路径:绝对路径是指目录下的绝对位置,直接到达目标位置,通常是从盘符开始的路径。
以上面查找liogin为例:html/body/heard/div/div/div/div/ul/li[2]/a
只要从html开始写xpth就表示使用的是绝对路径,可以理解为html是网页元素的根目录。
2、相对路径:由这个文件所在的路径引起的跟其它文件的路径关系。
以上面查找liogin为例://div[@id='navbar']/div/div/div/ul/li[2]/a