软件测试/测试开发丨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等,第二参数匹配的内容

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

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

相关推荐
辣椒思密达9 分钟前
Python公开数据采集实战:如何解决请求高频拦截与Session会话中断问题
开发语言·python
sbjdhjd20 分钟前
面试(5)| 3.5 小时面试复盘第五弹:加班出差 + 客户响应 + 压力面全拆解
经验分享·程序人生·面试·职场和发展·开源·跳槽·求职招聘
Albart57538 分钟前
Python 实战教程:用 30 分钟学会解决真实问题
开发语言·python
2301_773643621 小时前
ceph池
开发语言·ceph·python
极客笔记Jack1 小时前
Scanpy AnnData 对象深度解析:高效操作数据结构的10个技巧
python
颜酱2 小时前
LangChain调用向量模型,存入向量数据库
python·langchain
2501_928945522 小时前
七本性全面签名体系:从互递归类型到∞-范畴生成语法
python
2601_961194023 小时前
考研资料电子版|去哪找|网盘
java·c语言·c++·python·考研·php
veminhe3 小时前
关于下载pip install faiss-cpu失败的问题
python·pip·faiss
战族狼魂3 小时前
从零构建企业级Hermes-Agent:复杂任务拆解、工具协同与安全落地实践
开发语言·人工智能·python