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

selenium 常用xpath写法

以下使用豆包生成,只做记录

在 Selenium 中,XPath 是一种非常强大且常用的元素定位方式,以下是一些常用的 XPath 写法及示例:

基本定位

  1. 根据标签名定位查找页面中所有的 <input> 标签。

xpath

//input

这里 // 表示在整个文档中查找,不考虑元素的层级关系,input 是标签名。

  1. 根据属性定位查找 id 属性为 username 的元素。

xpath

//*[@id='username']

* 表示匹配任意标签,@id='username' 表示筛选出 id 属性值为 username 的元素。

文本定位

  1. 精确匹配文本查找文本内容为 “登录” 的 <a> 标签。

xpath

//a[text()='登录']

text() 函数用于获取元素的文本内容,该表达式表示筛选出文本内容恰好为 “登录” 的 <a> 标签。

  1. 模糊匹配文本查找文本内容包含 “搜索” 的 <div> 标签。

xpath

//div[contains(text(), '搜索')]

contains() 函数用于判断元素文本是否包含指定内容,这在文本内容不完全确定,只知道部分关键字时非常有用。

层级定位

  1. 父子层级定位假设页面结构为 <div class="parent"><span class="child">目标元素</span></div>,要定位到 <span> 元素。

xpath

//div[@class='parent']/span[@class='child']

这里 / 表示直接子元素关系,先找到 class 为 parent 的 <div> 元素,再从它的直接子元素中找到 class 为 child 的 <span> 元素。

  1. 祖先 - 后代层级定位假设页面结构为 <div class="ancestor"><p><span class="target">目标元素</span></p></div>,要定位到 <span> 元素。

xpath

//div[@class='ancestor']//span[@class='target']

这里 // 表示后代元素关系,即先找到 class 为 ancestor 的 <div> 元素,然后在它的所有后代元素中找到 class 为 target 的 <span> 元素。

逻辑运算定位

  1. 与运算查找 id 为 password 且 type 为 password 的 <input> 元素。

xpath

//input[@id='password' and @type='password']

and 用于连接多个条件,只有同时满足所有条件的元素才会被匹配到。

  1. 或运算查找 class 为 btn-login 或者 class 为 btn-signup 的元素。

xpath

//*[@class='btn-login' or @class='btn-signup']

or 表示只要满足其中一个条件的元素就会被匹配到。

轴定位

  1. 兄弟节点定位假设页面结构为 <div><p id="target">目标元素</p><span>后续兄弟元素</span></div>,要定位到 p 元素后面的第一个兄弟元素 <span>

xpath

//p[@id='target']/following-sibling::span[1]

following-sibling 轴表示选取当前节点之后的所有兄弟节点,[1] 表示选取第一个。

这些常用的 XPath 写法基本能满足 Selenium 中大部分的元素定位需求,在实际使用时,可以根据具体的页面结构和定位要求灵活选择和组合使用 。

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

相关文章:

  • selenium定位元素失败,常见错误有哪些?
  • 生态网站模板网站建设在线商城
  • 02117 信息组织【第五章】
  • Cloudflare zero trust内网建站,子比付费主题无法获取授权怎么办?
  • ubuntu 安装websocat
  • Ubantu安装MySQL8.0
  • 【AI】数学基础之矩阵
  • 计算机组成原理 刘宏伟 第四章 存储器(上)
  • 南京市雨花台区建设局网站php网站开发文章管理系统
  • 新手做国风视频难?AI + 敦煌美学高效出片教程
  • 友思特应用 | 流速测量:用于微流控芯片的多普勒OCT测速技术
  • 线程池的一些了解
  • R语言利用Export包导出pptx格式的文件有错误的原因
  • 金坛建设网站dw个人主页制作模板
  • AsmDude2 ASM汇编语言插件安装方式 基于Visual Studio 2022 直接插件安装无法使用的破解之法
  • 双目三维重建-2双目系统标定
  • 深入理解 PostgreSQL 数据库的 MVCC:原理、优势与实践
  • 基于python智能家居环境质量分析系统的设计与实现
  • 免费公司网站建设烟台网站制作开发
  • 射频前端MMIC:5G时代的技术引擎与市场机遇
  • 25G SFP28 光模块:中高速场景的高适配之选
  • 计算机毕设项目推荐:基于SpringBoot+Vue的非物质文化遗产再创新系统
  • 梦丘操作系统(MOS)
  • 9-机器学习与大模型开发数学教程-第1章 1-1 课程介绍与数学在机器学习中的作用
  • 成品网站管系统戴尔网站建设的特点
  • 【机器学习01】监督学习、无监督学习、线性回归、代价函数
  • 互联网大厂Java面试:缓存技术与监控运维的深度探讨
  • 用dw设计网站模板下载地址安徽工程建设官方网站
  • 【Linux】五种IO模型 + 非阻塞IO
  • threejs(四)层级模型