松勤-以工匠精神,专注IT在线教育,打造中国互联网教育品牌。
【松勤软件自动化测试】Web自动化如何使用xpath定位元素
发布时间:2018-11-09

XPath 路径表达式

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

表达式

描述

nodename

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

/

从根节点选取。

//

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

.

选取当前节点。

..

选取当前节点的父节点。

@

选取属性。

HTML 实例

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

<html>

  <bookstore>

    <book id="book1">

      <title lang="eng">学习xpath</title>

     <price id="test1">29.99</price>

   </book>

    <book id="book2">

      <title lang="eng">学习xpath</title>

      <price id="test2">39.95</price>

   </book>

  </bookstore>

</html>

实例

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

路径表达式

结果

//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的/和//区别:

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

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

联系地址:南京市雨花台区花神大道23号京妆商务5幢505
咨询电话:025-86331019
授课课程:软件测试自动化全栈课程性能测试全栈课程
QQ交流群
官方微信公众号
扫码领取公开课视频
025-86331019
Copyright ©2014-2019 南京松勤网络科技有限公司 .All Rights Reserved
苏ICP备14047045号-1
本网站部分图片来源于网络,如有任何疑问请第一时间与我们联系,未经沟通本站不承担相关法律责任!