xpath基本概念

  • XPath 是一门在 XML 文档中查找信息的语言
  • XPath 使用路径表达式在 XML 文档中进行导航
  • XPath 的应用非常广泛
  • XPath 可以应用在UI自动化测试

xpath 定位场景

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

xpath 定位的优点

  • 可维护性更强
  • 语法更加简洁
  • 相比于css可以支持更多的方式

 

xpath调试方法:

1. 进入一个网页-->右键点击检查-->ctrl+f 激活下图下面的xpath输入框,可输入进行查找,黄色为查找结果。

 

Phoronix Test Suite xml自动化 自动化xpath_input标签

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’)

注意:所有表达式需要和 [ ] 结合