写点什么

软件测试 / 测试开发丨 Web 自动化测试高级定位 xpath

作者:测试人
  • 2023-05-30
    北京
  • 本文字数:877 字

    阅读完需:约 3 分钟

获取更多相关知识

本文为霍格沃兹测试开发学社学员学习笔记分享


高级定位-xpath

目录

  • xpath 基本概念

  • xpath 使用场景

  • xpath 语法与实战

xpath 基本概念

  • XPath 是一门在 XML 文档中查找信息的语言

  • XPath 使用路径表达式在 XML 文档中进行导航

  • XPath 的应用非常广泛

  • XPath 可以应用在 UI 自动化测试

xpath 定位场景

  • web 自动化测试

  • app 自动化测试

xpath 相对定位的优点

  • 可维护性更强

  • 语法更加简洁

  • 相比于 css 可以支持更多的方式

# 复制的绝对定位$x('//*[@id="ember75"]/td[1]/span/a')# 编写的相对行为$x("//*[text()='技术分享 | SeleniumIDE用例录制']")
复制代码

xpath 定位的调试方法

  • 浏览器-console$x("xpath 表达式")

  • 浏览器-elementsctrl+f 输入 xpath 或者 css

xpath 基础语法(包含关系)


# 整个页面$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 高级语法总结

  • 基本语法

  • 索引

  • 高级用法


原文链接:https://ceshiren.com/t/topic/24920

发布于: 刚刚阅读数: 4
用户头像

测试人

关注

专注于软件测试开发 2022-08-29 加入

霍格沃兹测试开发学社,测试人社区:https://ceshiren.com/t/topic/22284

评论

发布
暂无评论
软件测试/测试开发丨Web自动化测试高级定位xpath_程序员_测试人_InfoQ写作社区