高级定位-XPATH

一、xpath 基本概念

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

二、xpath 使用场景

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

2.1、XPATH相对定位的优点

image

# 复制的绝对定位
$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()]:选取最后一个
    image
  • [表达式1 and 表达式2]:与关系
    • $x(‘//*[@class=“container” and @id=“main-container”]’)
  • [表达式1 or 表达式2]:或关系
    • $x(‘//*[@data-topic-id="7306"or@id=“ember476”]’)
  • [text()=“文本内容”]:根据文本内容定位
    image
  • [contains(方法,“匹配的内容”]:根据文本内容包含定位
    • 第一个参数匹配方法,如:text(),@id,@class等,第二参数匹配的内容
      image

注意:所有的表达式都需要与相结合。