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

selenium中xpath的用法大全

XPath的格式遵循XML路径语言规范,用于在XML/HTML文档中定位节点。以下是基本格式和常见用法:


1. 基本语法

  • 绝对路径:从根节点开始,如 /html/body/div
  • 相对路径:从当前节点开始,如 //div 表示查找所有div元素。

2. 常用表达式

(1) 通过标签名定位
//div  # 查找所有div元素
(2) 通过属性定位
//input[@id='username']  # 查找id为username的input元素
//a[@class='link']       # 查找class为link的a元素(注意:与CSS类名大小写敏感一致)
(3) 通过文本内容定位
//a[text()='点击这里']  # 查找文本完全匹配的a元素
//span[contains(text(), '示例')]  # 查找包含特定文本的span元素
(4) 通过层级关系定位
//div[@class='container']/p  # 查找class为container的div下的直接p子元素
//ul/li[1]  # 查找ul下的第一个li元素

3. 逻辑组合

  • AND/OR:结合多个条件。
  //button[@type='submit' and @class='primary']  # 同时满足两个条件
  • 通配符*表示任意标签,@*表示任意属性。
  //*[@id='header']  # 查找任意有id为header的元素

4. 注意事项

  • 大小写敏感:与CSS类名类似,XPath中标签名和属性名是大小写敏感的(如//Div//div不同)。
  • 索引从1开始:如//li[1]表示第一个li元素。

示例

//form[@id='loginForm']//input[@name='email']  # 在loginForm表单内查找name为email的input

通过灵活组合上述语法,可以精确定位页面元素。如果需要更复杂的逻辑,可参考XPath官方文档。

http://www.dtcms.com/a/271967.html

相关文章:

  • anchor 智能合约案例5 之 vesting
  • 汽车加气站操作工历年考试真题及答案
  • CSS表达式——下篇【selenium】
  • WebSocket实战:实现实时聊天应用 - 双向通信技术详解
  • 【C++】——类和对象(上)
  • C 语言基础:操作符、进制与数据表示通俗讲解
  • AI【应用 03】Windows环境部署 TTS CosyVoice2.0 详细流程记录(Matcha-TTS、spk2info.pt等文件分享)
  • Qt中处理多个同类型对象共享槽函数应用
  • git多分支管理
  • 缺陷的生命周期(Bug Life Cycle)是什么?
  • Java 正则表达式白皮书:语法详解、工程实践与常用表达式库
  • WWDC 25 风云再起:SwiftUI 7 Charts 心法从 2D 到 3D 的华丽蜕变
  • 【HarmonyOS Next之旅】DevEco Studio使用指南(四十二) -> 动态修改编译配置
  • 全面解析 wxPython:构建原生桌面应用的 Python GUI 框架
  • 【计算机基础理论知识】C++篇(二)
  • [python] 数据拷贝浪费内存,原地修改暗藏风险:如何平衡内存使用效率与数据完整性?
  • 【SpringBoot实战系列】SpringBoot3.X 整合 MinIO 存储原生方案
  • C++类对象多态底层原理及扩展问题
  • Python-GEE遥感云大数据分析与可视化(如何建立基于云计算的森林监测预警系统)
  • Yolov模型参数对比
  • Docker的/var/lib/docker/目录占用100%的处理方法
  • 变压器初级(原边)和次级(副边)的感应电动势、电压方向如何标注?
  • 安卓应用启动崩溃的问题排查记录
  • 《Effective Python》第十三章 测试与调试——使用 Mock 测试具有复杂依赖的代码
  • 【笔记分享】集合的基数、群、环、域
  • Python毕业设计232—基于python+Django+vue的图书管理系统(源代码+数据库)
  • EXCEL_单元格中图片调整代码留存
  • 什么是Kibana
  • 【C++】第十四节—模版进阶(非类型模版参数+模板的特化+模版分离编译+模版总结)
  • 保姆级搭建harbor私有仓库与docker-ce教程与使用教程