当前位置: 首页 > news >正文

Web自动化测试高级定位xpath

高级定位-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表达式")
  • 浏览器-elements

    • ctrl+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(),'华测教育')]

最后: 为了回馈铁杆粉丝们,我给大家整理了完整的软件测试视频学习教程,朋友们如果需要可以自行免费领取 【保证100%免费】

 全套资料获取方式:点击下方小卡片自行领取即可

 

http://www.lryc.cn/news/99743.html

相关文章:

  • 2023河南萌新联赛第(二)场:河南工业大学 F - 最短距离
  • 前端文件上传实践与后端处理——文件分块上传
  • SFP6012A-ASEMI代理海矽美快恢复二极管参数、尺寸、规格
  • githack的安装步骤+一次错误体验
  • 【Spring框架】SpringBoot创建和使用
  • 【C语言项目】多臂井径电子测井成像项目(一)
  • 力扣 56. 合并区间
  • 前端开发Vue3.0 标签setup语法『UI组件库』之『模态框』【业务提升必备】
  • 在CSDN学Golang云原生(Kubernetes二开)
  • chatglm-6b量化推理指标记录
  • Android kotlin系列讲解之最佳的UI体验 - Material Design 实战
  • 链表基础知识
  • process.env.npm_config_argv的值3个参数remain、cooked、original什么含义
  • 【飞书】飞书导出md文档 | 飞书markdown文档导出 | 解决飞书只能导出pdf word
  • 零信任网络架构与实现技术的研究与思考
  • Unity 性能优化二:内存问题
  • JavaScript与TypeScript的区别
  • 【NetCore】05-使用Autofac增强容器能力
  • sparksql参数
  • STM32读写内部Flash
  • golang文件锁,目录锁,syscall包的使用
  • 数据库数据恢复-Syabse数据库存储页底层数据杂乱的数据恢复案例
  • 移远通信推出新一代高算力智能模组SG885G-WF,为工业和消费级IoT应用带来全新性能标杆
  • 微信小程序开发,小程序类目符合,线上版本无权限申请wx.getLocation接口
  • vue2企业级项目(五)
  • 【HTML5】拖放详解及实现案例
  • Codeforces Round 888 (Div. 3)(视频讲解全部题目)
  • MySQL之深入InnoDB存储引擎——物理文件
  • Jquery操作html常用函数
  • 【Lua学习笔记】Lua进阶——Table,迭代器