写点什么

软件测试 / 测试开发|详解 selenium xpath 定位

  • 2023-12-18
    北京
  • 本文字数:1099 字

    阅读完需:约 4 分钟


在自动化测试中,使用 Selenium 定位网页元素是至关重要的。XPath 是一种强大的定位方法,允许您通过元素的路径来精确定位,无论其在 DOM(文档对象模型)中的位置如何。

selenium-xpath 定位

element_xpath = driver.find_element(By.XPATH, '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 中,按如下格式可验证表达式


$x("xpath表达式")   # 表达式中存在引号,则使用单引号,'$'可更换为'$$'
复制代码


<br>

xpath 节点

在 xpath 中,有七种类型的节点(node):元素、属性、文本、命名空间、处理指令、注释以及文档节点(或称为根节点)在开始 xpath 语法前,我们需要简单了解这几种节点:



<br>

xpath 语法

<font color='red'>xpath 使用路径表达式描述目标节点与网页头的关系</font>

绝对路径 & 相对路径

路径表达式有两种结构,分别为:


  • 绝对路径:从根节点/html 开始往下,一层层的表示出来直到需要的节点为止。以百度输入框为例,表达式为:


/html/body/div[1]/div[2]/div[5]/div[1]/div/form/span[1]
复制代码


  • 相对路径:从任意节点开始,根据节点描述信息找到需要的节点。同样以百度输入框为例,表达式为:


//input[@id='su']
复制代码


对比两种表达式,可以发现:


  • 相对路径更简洁,方便阅读

  • 相对路径更稳定,当前端页面有结构变动就容易引起绝对路径发生变化


<font color='red'>因此,在项目中几乎都是使用相对路径进行定位</font>

xpath 基本表达式

xpath 谓语表达式

谓语表达式(predicate):紧跟在节点后面,嵌入在[]中的一段表达式,可用来筛选多个同名节点谓语表达式作用原理:获取节点信息,通过表达式判断节点是否符合要求,为 True 则返回该节点谓语格式:


节点名称[谓语]
复制代码


<br>



<br>



备注:


  1. last()、position()、text()、not()这类带有括号的表达式,实质都是 xpath 提供的函数,本篇文章只列出了常用函数

  2. 根据 W3C 标准,第一个节点编号应该是[1],但在 IE5 及更高版本中第一个节点编号是[0]

xpath 轴(axis)

轴:表示所选节点与当前节点之间的树关系,用来筛选对于当前节点有相同关系的一类节点轴格式:


当前节点/轴名称::节点名称
复制代码


总结

XPath 是一个强大的工具,但也需要谨慎使用,因为 Xpath 方法查找元素较慢,一般情况下优先选择是其他定位方法,希望本文能够帮到大家!


更多Python基础语法趣味学习视频,请点击!



用户头像

社区:ceshiren.com 微信:ceshiren2021 2019-10-23 加入

微信公众号:霍格沃兹测试开发 提供性能测试、自动化测试、测试开发等资料,实时更新一线互联网大厂测试岗位内推需求,共享测试行业动态及资讯,更可零距离接触众多业内大佬。

评论

发布
暂无评论
软件测试/测试开发|详解selenium xpath定位_霍格沃兹测试开发学社_InfoQ写作社区