web自动化如何使用xpath定位元素

https://www.cnblogs.com/fgzhang/p/6645575.html

XPath 路径表达式

XPath 使用路径表达式来选取 Html 中的节点或者节点集。

表达式描述

nodename选取此节点的所有子节点。

/从根节点选取。

//从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。

.选取当前节点。

..选取当前节点的父节点。

@选取属性。

HTML 实例

我们将在下面的例子中使用这个 HTML

 

   

      学习xpath

      29.99

   

   

      学习xpath

      39.95

   

 

实例

在下面的表格中,我们已列出了一些路径表达式以及表达式的结果:

路径表达式结果

//bookstore选取 bookstore 元素的所有子节点。

//bookstore/book选取属于 bookstore 的子元素的所有 book 元素。

//book选取所有 book 子元素,而不管它们在文档中的位置。

//bookstore//book选择属于 bookstore 元素的后代的所有 book 元素,而不管它们位于 bookstore 之下的什么位置。

//book[@lang]选取包含 lang 的有属性所有book元素,而不管它们在文档中的位置。

常用的XPath 轴

轴可定义相对于当前节点的节点集。

轴名称结果

ancestor选取当前节点的所有先辈(父、祖父等)。

parent选取当前节点的父节点。

following-sibling选取当前节点之后的所有同级节点。

preceding-sibling选取当前节点之前的所有同级节点。


假如我们需要定位:

第一个book节点的title,因为此处的2个title标签的所有属性都一样,所以我们需要借助它邻近的元素定位到它。

//price[@id='test1']/preceding-sibling::title

xpath解读:首先找到id是test1的price节点,然后找到它之前的同级title节点。

//book[@id='book1']/title

xpath解读:首先找到id是book1的book节点,然后找到它直接子节点title。


其它轴实例:

//price/parent::book

xpath解读:定位price的直接父级节点book

//title/following-sibling:

rice

xpath解读:定位title后面同级节点price

//title//ancestor::book

xpath解读:定位title的所有父级、祖父级的book节点


xpath的/和//区别:

/是仅仅查找它直接父节点或者子节点

//是查找它所有的父级和祖父级...节点


详情请查阅:

http://www.w3school.com.cn/xpath/index.asp

你可能感兴趣的:(web自动化如何使用xpath定位元素)