我爱编程

2018-04-17 xpath

2018-04-17  本文已影响0人  dataTONG

xpath教程(非常不错!!)

web端功能自动化定位元素

XPath、XQuery 以及 XSLT 函数

Selenium之xpath和css定位

1、通过parent::来获取父节点,代码如下:

result = html.xpath('//a[@href="link4.html"]/parent::*/@class')

2、如果要想获取子孙节点内部的所有文本,可以直接用//text()的方式,这样可以保证获取到最全面的文本信息,但是可能会夹杂一些换行符等特殊字符。如果想获取某些特定子孙节点下的所有文本,可以先选取到特定的子孙节点,然后再调用text()方法获取其内部文本,这样可以保证获取的结果是整洁的。

3、属性获取属性匹配的不同——属性匹配是中括号加属性名和值(如[@href="link1.html"])来限定某个属性,而此处的@href指的是获取节点的某个属性,二者需要做好区分。

4、 属性多值匹配

result = html.xpath('//li[contains(@class, "li")]/a/text()');这样通过contains()方法,第一个参数传入属性名称,第二个参数传入属性值,只要此属性包含所传入的属性值,就可以完成匹配了。

5、多属性匹配

result = html.xpath('//li[contains(@class, "li") and @name="item"]/a/text()')

6、| 计算两个节点集       //book | //cd         返回所有拥有book和cd元素的节点集

7、attribute::*选取当前节点的所有属性。

attribute::lang选取当前节点的 lang 属性。

8、child::text()选取当前节点的所有文本子节点。       print(html.xpath('//li[1]//child::text()'))

      child::node()选取当前节点的所有子节点。            print(html.xpath('//li[1]//child::node()'))

9、driver. findElement(By.xpath ("//input") )

返回查找到的第一个符合条件的元素。

driver. findElement(By.xpath ("//input[2]") )

返回查找到的第二个符合条件的元素。

10、

上一篇 下一篇

猜你喜欢

热点阅读