Java教程

Web自动化 -- Xpath

本文主要是介绍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’)

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

这篇关于Web自动化 -- Xpath的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!