xpath 定位小技巧

绝对路径定位

find_element_by_xpath('/html/body/div[1]/*[2]/input')

/表示从根节点开始,body中的第一个div标签下的第二个标签(*表示匹配所有类型标签)下的input标签。注意这个同级下第几个元素是从1开始的,同级下只有一个该标签就不用指定第几个了,比如上面的input

利用元素属性进行定位

find_element_by_xpath('//img[@alt="image"]')

表示当前页面中某个alt属性值为image的img标签元素,注意//不表示从根目录开始查找了,直接查找img标签

层级与属性结合

``find_element_by_xpath('//span[@id="test"]/input')`

如果一个元素没有什么唯一标识,那么我们可以查找它的上一级元素,直到找到唯一标识。

以上表示id值为test的span标签下的input标签元素

使用逻辑运算符

find_element_by_xpath('//div[@name="test" and @class="demo"]')

如果一个属性不能唯一区分一个元素,那么可以使用and或者or

以上表示name值为test同时class值为demo的div标签元素

使用contains方法

find_element_by_xpath('//span[contains(@*,"abc")]')

contains方法用于匹配一个属性中包含的字符串。

以上表示所有属性中包含abc的span元素,当然@属性可以指定为某一确定的属性,或者使用*匹配所有属性

posted @ 2020-02-19 13:27  MilesMa  阅读(748)  评论(0编辑  收藏  举报