1.XPATH简介:
XPath 使用路径表达式在 XML 文档中进行导航
XPath 包含一个标准函数库
XPath 是 XSLT 中的主要元素
XPath 是一个 W3C 标准
参考网站:(http://www.w3school.com.cn/xpath/xpath_intro.asp)
2.selenium之xpath源码
```
def find_element_by_xpath(self, xpath):
"""
Finds an element by xpath.
:Args:
- xpath - The xpath locator of the element to find.
:Usage:
driver.find_element_by_xpath('//div/td[1]')
"""
return self.find_element(by=By.XPATH, value=xpath)
```
3.xpath各种实际用法
3.1XPATH工具安装
1. 打开火狐浏览器
3. 在搜索所有附件组件文本输入框输入:firebug
4. 找到Firebug,点击安装。
5. 安装好了之后,会在火狐浏览器右上角显示一个虫子的图标
6.只针对IE的可以使用`Fire-IEBrowser1.4.xlsm`工具,下载地址:( https://pan.baidu.com/s/1mjK4gFA),密码:73yn
3.2 text()定位方法(以百度首页新闻为例,元素属性唯一的情况下可以使用)
`其对应的XPATH路径`://div[@id='u1']//a[.='新闻']
`怎么来的:`首先查找div标签下并且id=u1的div标签然后再查找text()=新闻的元素可以以点代替,不指明属性
- contains()方法
以上边路径为例://div[@id='u1']//a[@href,'news']
- 相对路径(有时候,我们遇到目标元素节点的信息很少,不足够用来精确定位到目标元素,这个时候,我们就需要考虑,利用目标元素上下附件节点,通过确定附件的节点从而确定目标元素,这种方式就叫相对路径)
####另外附上关于xpath的路径写法详解(来源网络)
(https://www.cnblogs.com/lishiyan163/archive/2012/08/13/2635667.html)
1. /AAA:选择根元素AAA
2. //BBB:所有BBB元素
3. /AAA/CCC/DDD/*:选择/AAA/CCC/DDD/下所有元素
4. /*/*/*/BBB:选择有3个祖先元素的BBB元素
5. //*:选择所有元素
6. /AAA/BBB[1]:选择AAA的第一个BBB子元素
7. //@ID:选择所有的ID属性;//BBB[@ID]:选择有ID属性的BBB元素;//BBB[@*]:选择有任意属性的BBB元素;//BBB[not (@*)]:选择没有属性的BBB元素
8. //BBB[normalize-space(@name)=’bbb’] :选择含有name且值(用mormalize-space去掉前后空格)为‘bbb’的BBB元素
9. //*[count(BBB)=2]:选择含有2个BBB子元素的元素;//*[count(*)=2];
领取专属 10元无门槛券
私享最新 技术干货