Web自动化 -- Xpath
作者:互联网
xpath基本概念
- XPath 是一门在 XML 文档中查找信息的语言
- XPath 使用路径表达式在 XML 文档中进行导航
- XPath 的应用非常广泛
- XPath 可以应用在UI自动化测试
xpath 定位场景
- web自动化测试
- app自动化测试
xpath 定位的优点
- 可维护性更强
- 语法更加简洁
- 相比于css可以支持更多的方式
xpath调试方法:
1. 进入一个网页-->右键点击检查-->ctrl+f 激活下图下面的xpath输入框,可输入进行查找,黄色为查找结果。
2.进入console,输入$x("xpath表达式") 也可进行调试
xpath 基础语法(包含关系)
如果是要用属性去匹配,首先需要表达式 | 结果 |
---|---|
/ | 从该节点的子元素选取 |
// | 从该节点的子孙元素选取 |
* | 通配符 |
nodename | 选取此节点的所有子节点,代表标签名 |
. | 选取当前节点 |
.. | 选取当前节点的父节点 |
@ | 选取属性 @id="od1" |
# 整个页面
$x("/")
# 页面中的所有的子元素
$x("/*")
# 整个页面中的所有元素
$x("//*")
# 查找页面上面所有的div标签节点
$x("//div")
# 查找id属性为site-logo的节点
$x('//*[@id="site-logo"]')
# 查找节点的父节点
$x('//*[@id="site-logo"]/..')
# 查找节点的爷爷节点
$x('//*[@id="site-logo"]/../..')
# 查找当前节点,也可以不使用
$x('//*[@id="site-logo"]/.')
xpath 顺序关系(索引)
- xpath通过索引直接获取对应元素,索引找的是父元素的第几个孩子
# 获取此节点下的所有的li元素
$x("//*[@id='ember21']//li")
# 获取此节点下【所有的节点的】第一个li元素
$x("//*[@id='ember21']//li[1]")
xpath 高级用法总结
todo : 修改示例
表达式 | 举例 | 结果 |
---|---|---|
//标签名[last()] | //input[last()] |
选取最后一个input标签 |
//标签名[postion()<3] | input[postion()<3] |
选取前2个input元素 |
//标签名[@属性名='属性值' and @属性名='属性值'] | //input[@name='passward' and @pwd='123456'] |
选取属性name的值为passward并且属性pwd的值为123456的input标签 |
//标签名[text()=‘文本信息’] | //*[text()='霍格沃兹测试开发'] |
选取所有文本信息为’霍格沃兹测试开发’的元素 |
//标签名[contains(text(),‘文本信息’)] | //*[contains(text(),'霍格沃兹')] |
选取所有文本信息包’霍格沃兹’的元素 或者contains(@id,‘id name’) |
注意:所有表达式需要和 [ ] 结合
标签:xpath,Web,--,标签,节点,查找,Xpath,选取,id 来源: https://www.cnblogs.com/manshuoli/p/16367776.html