软件测试 / 测试开发|详解 selenium xpath 定位
在自动化测试中,使用 Selenium 定位网页元素是至关重要的。XPath 是一种强大的定位方法,允许您通过元素的路径来精确定位,无论其在 DOM(文档对象模型)中的位置如何。
selenium-xpath 定位
<br>
xpath 定位说明
xpath 即为 XML 路径语言(XML Path Language),是由国际标准化组织 W3C 指定的,一种用来确定 XML 文档节点位置的语言
<br>
xpath 定位优点
1.相较于其他定位方式,可支持更多定位方法,如:布尔逻辑判断、模糊定位等 2.可支持 web 定位、Android app 原生页面定位
<br>
xpath 定位缺点
1.需要从头到尾解析整个页面,速度较慢
<br>
xpath 调试方法
方法 1:在浏览器开发者模式的 elements 中,Ctrl+F 搜索栏输入 xpath 表达式方法 2:在浏览器开发者模式的 console 中,按如下格式可验证表达式
<br>
xpath 节点
在 xpath 中,有七种类型的节点(node):元素、属性、文本、命名空间、处理指令、注释以及文档节点(或称为根节点)在开始 xpath 语法前,我们需要简单了解这几种节点:
<br>
xpath 语法
<font color='red'>xpath 使用路径表达式描述目标节点与网页头的关系</font>
绝对路径 & 相对路径
路径表达式有两种结构,分别为:
绝对路径:从根节点/html 开始往下,一层层的表示出来直到需要的节点为止。以百度输入框为例,表达式为:
相对路径:从任意节点开始,根据节点描述信息找到需要的节点。同样以百度输入框为例,表达式为:
对比两种表达式,可以发现:
相对路径更简洁,方便阅读
相对路径更稳定,当前端页面有结构变动就容易引起绝对路径发生变化
<font color='red'>因此,在项目中几乎都是使用相对路径进行定位</font>
xpath 基本表达式
xpath 谓语表达式
谓语表达式(predicate):紧跟在节点后面,嵌入在[]中的一段表达式,可用来筛选多个同名节点谓语表达式作用原理:获取节点信息,通过表达式判断节点是否符合要求,为 True 则返回该节点谓语格式:
<br>
<br>
备注:
last()、position()、text()、not()这类带有括号的表达式,实质都是 xpath 提供的函数,本篇文章只列出了常用函数
根据 W3C 标准,第一个节点编号应该是[1],但在 IE5 及更高版本中第一个节点编号是[0]
xpath 轴(axis)
轴:表示所选节点与当前节点之间的树关系,用来筛选对于当前节点有相同关系的一类节点轴格式:
总结
XPath 是一个强大的工具,但也需要谨慎使用,因为 Xpath 方法查找元素较慢,一般情况下优先选择是其他定位方法,希望本文能够帮到大家!
评论