软件测试/测试开发丨Selenium 高级定位 Xpath

一、xpath 基本概念

XPATH是一门在XML文档中查找信息的语言

XPATH使用路径表达式在XML文档中进行导航

XPATH的应用非常广泛,可以用于UI自动化测试

二、xpath 使用场景

  • 自动化测试
  • app自动化测试

2.1、XPATH相对定位的优点

python 复制代码
# 复制的绝对定位
$x('//*[@id="ember75"]/td[1]/span/a')
# 编写的相对行为
$x("//*[text()='技术分享 | SeleniumIDE用例录制']")

2.2、xpath 定位的调试方法

  • 浏览器-console

    • $x("xpath表达式")
  • 浏览器-elements

    • ctrl+f 输入xpath或者css

三、xpath 语法与实战

3.1、xpath 基础语法(包含关系)

表达式 结果 示例
/ 从该节点的子元素选取 $x('/')
// 从该节点的子孙元素选取 $x('//')
* 通配符 $x('///*')
nodename 选取此节点的所有子节点
... 选取当前节点的父节点
@ 选取属性
python 复制代码
# 整个页面
$x("/")
# 页面中的所有的子元素
$x("/*")
# 整个页面中的所有元素
$x("//*")
# 查找页面上面所有的div标签节点
$x("//div")
# 查找class属性为site-logo的节点
$x('//*[@class="site-logo"]')
# 查找节点的父节点
$x('//*[@class="site-logo"]/..')

3.2、xpath 顺序关系(索引)

  • xpath通过索引直接获取对应元素

xpath 高级用法

  • last():选取最后一个

  • 表达式1 and 表达式2:与关系

    • $x('//*@class="container" and @id="main-container"')
  • 表达式1 or 表达式2:或关系

    • $x('//*@data-topic-id="7306"or@id="ember476"')
  • text()="文本内容":根据文本内容定位

  • contains(方法,"匹配的内容":根据文本内容包含定位

    • 第一个参数匹配方法,如:text(),@id,@class等,第二参数匹配的内容

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

相关推荐
IT小盘14 小时前
03-大模型API不只是发送Prompt-流式输出超时重试与异常处理
人工智能·python·prompt
Zzz不能停16 小时前
个人博客系统系统---测试报告【笔耕云】
python·功能测试·自动化·压力测试
祉猷并茂,雯华若锦16 小时前
Pytest+Selenium自动化测试:失败自动截图集成Allure报告
selenium·测试工具·pytest
互联网中的一颗神经元16 小时前
小白python入门 - 39. 采集流水线小项目
开发语言·python
郭老二17 小时前
【Python】常用模块:xmlrpc
python
名字还没想好☜18 小时前
Python itertools 实战:用 groupby、chain、islice 优雅处理大数据流
linux·windows·python·迭代器·itertools
威联通网络存储18 小时前
TS-h2490FU在面板制造Array段AOI缺陷画廊中的并联
python·制造
接针19 小时前
UV 常用命令
python·uv
无垠的广袤20 小时前
【工业树莓派 CM0 Dev Board】扩展板设计
linux·python·嵌入式硬件·pcb设计·模块化·传感器
Yolanda_202221 小时前
在vscode终端中可使用pip,但是cmd终端中找不到命令 pip问题的解决
vscode·python·conda·pip