Selenium动态元素定位

动态元素定位方法

一:使用CSS选择器

通过部分匹配操作符定位动态属性中的固定部分。*= (包含),^= (开头),$=(结尾)。

css 复制代码
/* 匹配id前缀为user_的元素 */
css=div[id^="user_"]

/* 匹配class包含item-box-的元素 */
css=div[class*="item-box-"]

/* 匹配href属性以.pdf结尾的元素 */
css=a[href$=".pdf"]

二:使用XPath表达式

利用XPath函数如contains()starts-with()substring()处理动态属性。

XML 复制代码
<!-- 匹配class包含dynamic-class的元素 -->
xpath=//div[contains(@class, 'dynamic-class')]

<!-- 匹配id前缀为search_的元素 -->
xpath=//input[starts-with(@id, 'search_')]

<!-- 匹配src属性以_img结尾的元素 -->
xpath=//img[substring(@src, string-length(@src)-3) = '_img']

三:组合定位策略

当动态元素缺乏固定特征时,通过相邻元素或上下文的固定属性进行定位。

示例:动态div下的固定文本标签

复制代码
<div class="dynamic-123">
  <span>用户名:</span>
  <input type="text" id="dynamic-input-456">
  <input type="text2" id="dynamic-input-789">
</div>

定位输入框

复制代码
xpath=//span[text()='用户名:']/following-sibling::input[2]

解释://span[text()='用户名:']:先定位到文本为 "用户名:" 的 <span> 元素
/following-sibling::input[2]:然后选取该 <span> 元素的第二个同级 <input> 元素

加油!你是最棒的!

相关推荐
卓码软件测评8 小时前
第三方CNAS软件测评机构:【Gatling性能测试工具中的正则表达式提取的saveAs、transform和match组合使用】
测试工具·性能优化·测试用例
Pyeako11 小时前
网络爬虫相关操作--selenium库(超详细版)
爬虫·python·selenium
袁袁袁袁满12 小时前
基于selenium和亮数据爬取海外电商平台
爬虫·selenium·网络爬虫·数据采集·爬虫实战·电商采集·自动化采集
测试老哥13 小时前
UI自动化测试—Jenkins配置优化
自动化测试·软件测试·python·测试工具·ui·jenkins·测试用例
子夜江寒13 小时前
基于Selenium的自动化Web数据采集实践
selenium·自动化
卓码软件测评13 小时前
第三方CMA/CNAS软件测评机构:【Apifox在Dubbo接口调试和RPC服务测试中的测试应用】
网络·测试工具·性能优化·测试用例
测试老哥13 小时前
2026软件测试面试大全(含答案+文档)
自动化测试·软件测试·python·测试工具·面试·职场和发展·测试用例
程序员杰哥14 小时前
接口测试之文件上传
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·接口测试
oioihoii15 小时前
VS Code 1.107 更新:多智能体协同与开发体验升级
测试工具
软件测试大叔15 小时前
Playwright、Puppeteer、Selenium 自动化测试框架对比分析
测试工具