web自动化测试(八)xpath定位方式

xpath简介

  • XPath 是一门在 XML 文档中查找信息的语言。

xpath定位场景

  • web自动化
  • app自动化,包括原生控件定位

xpath定位调试方法

  1. 浏览器-elements,Ctrl+F搜索栏输入xpath表达式
  2. 浏览器-console,输入:$x("xpath表达式")

xpath基本语法

表达式 结果 示例 示例说明
/ 从该节点的子元素选取 $x("/") 整个页面
// 从该节点的子孙元素选取 $x("//*") 整个页面中的所有元素
* 通配符 $x("/*") 页面中的所有的子元素
nodename 选取此节点的所有子节点 $x("//div") 查找页面上面所有的div标签节点
. 选取当前节点 $x('//*[@id="site-logo"]/.') 查找当前节点,也可以不使用
.. 选取当前节点的父节点 $x('//*[@id="site-logo"]/..') 查找节点的父节点
@ 选取属性 $x('//*[@id="site-logo"]') 查找id属性为site-logo的节点

xpath高级语法

语法 表达式 举例 结果
n //标签名[n] //input[2] 选取第二个input标签
last() //标签名[last()] //input[last()] 选取最后一个input标签
postion() //标签名[postion()<4] input[postion()<4] 选取前3个input元素
and //标签名[@属性名='属性值' and @属性名='属性值'] //input[@name='passward' and @pwd='123456'] 选取属性name的值为passward并且属性pwd的值为123456的input标签
text() //标签名[text()=‘文本信息’] //*[text()='测试人'] 选取所有文本信息为’测试人’的元素
contains() //标签名[contains(text(),‘文本信息’)] //*[contains(text(),'测试人')] 选取所有文本信息包’测试人’的元素

XPath 轴(Axes)

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

轴名称 结果
ancestor 选取当前节点的所有先辈(父、祖父等)。
ancestor-or-self 选取当前节点的所有先辈(父、祖父等)以及当前节点本身。
attribute 选取当前节点的所有属性。
child 选取当前节点的所有子元素。
descendant 选取当前节点的所有后代元素(子、孙等)。
descendant-or-self 选取当前节点的所有后代元素(子、孙等)以及当前节点本身。
following 选取文档中当前节点的结束标签之后的所有节点。
following-sibling 选取当前节点之后的所有兄弟节点
namespace 选取当前节点的所有命名空间节点。
parent 选取当前节点的父节点。
preceding 选取文档中当前节点的开始标签之前的所有节点。
preceding-sibling 选取当前节点之前的所有同级节点。
self 选取当前节点。
posted @ 2022-05-25 23:26  小小滴人a  阅读(75)  评论(0编辑  收藏  举报