Python+Selenium之元素定位XPATH

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];

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180122G04OZM00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券