点此获取更多相关资料
本文为霍格沃兹测试开发学社学员学习笔记分享
原文链接:https://ceshiren.com/t/topic/27036
一、xpath 基本概念
XPATH是一门在XML文档中查找信息的语言
XPATH使用路径表达式在XML文档中进行导航
XPATH的应用非常广泛,可以用于UI自动化测试
二、xpath 使用场景
- 自动化测试
- app自动化测试
2.1、XPATH相对定位的优点

# 复制的绝对定位
$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 | 选取此节点的所有子节点 | |
| … | 选取当前节点的父节点 | |
| @ | 选取属性 | 
# 整个页面
$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等,第二参数匹配的内容
  
 
- 第一个参数匹配方法,如:text(),@id,@class等,第二参数匹配的内容











![[ZenTao]源码阅读:自定义任务类型](https://img-blog.csdnimg.cn/df668dcdb6bd4744984c6c76e393a892.png)







