jck28-lucio-高级定位-xpath

目录

  • xpath 基本概念
  • xpath 使用场景
  • xpath 语法与实战

xpath基本概念

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

xpath 定位场景

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


xpath 相对定位的优点

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

image

复制的绝对定位

$x(‘//*[@id=“ember75”]/td[1]/span/a’)

编写的相对行为

$x(“//*[text()=‘技术分享 | SeleniumIDE用例录制’]”)

xpath 定位的调试方法

  • 浏览器-console
    • $x("xpath表达式")
  • 浏览器-elements
    • ctrl+f 输入xpath或者css

xpath 基础语法(包含关系)

表达式 结果
/ 从该节点的子元素选取
// 从该节点的子孙元素选取
* 通配符
nodename 选取此节点的所有子节点
选取当前节点的父节点
@ 选取属性
![image 535x333](upload://fcTAFEBuJJi2S9QUpsqDYWHdSn4.png)

整个页面

$x(“/”)

页面中的所有的子元素

$x(“/*”)

整个页面中的所有元素

$x(“//*”)

查找页面上面所有的div标签节点

$x(“//div”)

查找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 高级用法

  • [last()]: 选取最后一个
  • [@属性名='属性值' and @属性名='属性值']: 与关系
  • [@属性名='属性值' or @属性名='属性值']: 或关系
  • [text()='文本信息']: 根据文本信息定位
  • [contains(text(),'文本信息')]: 根据文本信息包含定位
  • 注意:所有的表达式需要和[]结合

选取最后一个input标签

//input[last()]

选取属性name的值为passward并且属性pwd的值为123456的input标签

//input[@name=‘passward’ and @pwd=‘123456’]

选取属性name的值为passward或属性pwd的值为123456的input标签

//input[@name=‘passward’ or @pwd=‘123456’]

选取所有文本信息为’霍格沃兹测试开发’的元素

//*[text()=‘霍格沃兹测试开发’]

选取所有文本信息包’霍格沃兹’的元素

//*[contains(text(),‘霍格沃兹’)]

xpath 高级语法总结

  • 基本语法
  • 索引
  • 高级用法