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']

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

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

xpath

复制代码
//div[@class='ancestor']//span[@class='target']

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

逻辑运算定位

  1. 与运算 查找 idpasswordtypepassword<input> 元素。

xpath

复制代码
//input[@id='password' and @type='password']

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

  1. 或运算 查找 classbtn-login 或者 classbtn-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 中大部分的元素定位需求,在实际使用时,可以根据具体的页面结构和定位要求灵活选择和组合使用 。

相关推荐
layman05282 小时前
webpack5 css-loader:从基础到原理
前端·css·webpack
半桔2 小时前
【前端小站】CSS 样式美学:从基础语法到界面精筑的实战宝典
前端·css·html
AI老李2 小时前
PostCSS完全指南:功能/配置/插件/SourceMap/AST/插件开发/自定义语法
前端·javascript·postcss
_OP_CHEN2 小时前
【前端开发之CSS】(一)初识 CSS:网页化妆术的终极指南,新手也能轻松拿捏页面美化!
前端·css·html·网页开发·样式表·界面美化
啊哈一半醒2 小时前
CSS 主流布局
前端·css·css布局·标准流 浮动 定位·flex grid 响应式布局
PHP武器库2 小时前
ULUI:不止于按钮和菜单,一个专注于“业务组件”的纯 CSS 框架
前端·css
电商API_180079052472 小时前
第三方淘宝商品详情 API 全维度调用指南:从技术对接到生产落地
java·大数据·前端·数据库·人工智能·网络爬虫
晓晓莺歌2 小时前
vue3某一个路由切换,导致所有路由页面均变成空白页
前端·vue.js
Up九五小庞2 小时前
开源埋点分析平台 ClkLog 本地部署 + Web JS 埋点测试实战--九五小庞
前端·javascript·开源
qq_177767373 小时前
React Native鸿蒙跨平台数据使用监控应用技术,通过setInterval每5秒更新一次数据使用情况和套餐使用情况,模拟了真实应用中的数据监控场景
开发语言·前端·javascript·react native·react.js·ecmascript·harmonyos