Selenium Python 利用XPath定位元素

2019-03-20  本文已影响0人  YYece

一、什么是Xpath

Xpath是在一种在XML文档里查找信息的语言。

二、Xpath定位元素的几种方式

1、绝对路径定位

a = browser.find_element_by_xpath('/html/body/div/div[2]/div/div/div/from/span/input')
绝对路径定位存在很大的问题就是如果页面元素一改变元素的xpath也会随之改变,很不稳定,不推荐使用

2、标签+属性定位——xpath = "//标签名[@属性='属性值']"

3、text()方法定位

例如,百度首页的新闻超链接的xpath可以表示为//*[text()='新闻']

4、contains()方法定位,也叫模糊定位

xpath = "//标签名[contains(@属性, '属性值')]"
例如,百度首页的新闻也可以写成//a[contains(@name,'news')]

只要属性中包含给出的字符串就可以定位到元素了

5、starts-with ,ends-with方法定位

starts-with -- 匹配以xx开头的属性值;ends-with -- 匹配以xx结尾的属性值
//*[starts-with(@value,'百度一')]可以定位到百度一下按钮;
但是browser.find_element_by_xpath("//a[ends-with(@name,'_trnews')]")定位不到新闻,那是因为ends-with是Xpath2.0的用法,但是浏览器一般通常只支持Xpath1.0

6、如果一个元素无法通过自身的属性定位到,那么可以先定位到他的上一级或者上N级,然后再一级一级地找到他

例如,定位到百度首页的输入框,可以表示成//form[@id='form']/span[contains(@class,'s_ipt_wr')]/input

三、Xpath的优缺点

上一篇 下一篇

猜你喜欢

热点阅读