软件测试/测试开发丨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()\]:选取最后一个 ![image](https://file.jishuzhan.net/article/1743581416102301698/69d64110ec17ca5e883f089876ef62a1.webp)

    • $x('//*[@class="container" and @id="main-container"]')
  • 表达式1 or 表达式2\]:或关系 * $x('//\*\[@data-topic-id="7306"or@id="ember476"\]')

  • contains(方法,"匹配的内容"\]:根据文本内容包含定位 * 第一个参数匹配方法,如:text(),@id,@class等,第二参数匹配的内容 ![image](https://file.jishuzhan.net/article/1743581416102301698/e6d777eb4557c1db2c4ded2f62216201.webp)

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

相关推荐
C嘎嘎嵌入式开发2 小时前
(2)100天python从入门到拿捏
开发语言·python
Stanford_11063 小时前
如何利用Python进行数据分析与可视化的具体操作指南
开发语言·c++·python·微信小程序·微信公众平台·twitter·微信开放平台
white-persist4 小时前
Python实例方法与Python类的构造方法全解析
开发语言·前端·python·原型模式
Java 码农5 小时前
Centos7 maven 安装
java·python·centos·maven
Run Freely9375 小时前
接口测试-postman-全局变量与环境变量
测试工具·postman
倔强青铜三6 小时前
苦练Python第63天:零基础玩转TOML配置读写,tomllib模块实战
人工智能·python·面试
浔川python社6 小时前
《网络爬虫技术规范与应用指南系列》(xc—3):合规实操与场景落地
python
B站计算机毕业设计之家6 小时前
智慧交通项目:Python+YOLOv8 实时交通标志系统 深度学习实战(TT100K+PySide6 源码+文档)✅
人工智能·python·深度学习·yolo·计算机视觉·智慧交通·交通标志
IT森林里的程序猿6 小时前
基于机器学习方法的网球比赛胜负趋势预测
python·机器学习·django
正牌强哥6 小时前
Futures_ML——机器学习在期货量化交易中的应用与实践
人工智能·python·机器学习·ai·交易·akshare