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> 元素

加油!你是最棒的!

相关推荐
dexie_tech1 小时前
不惧高频挑战,电流传感器带宽升级
功能测试·科技·物联网·测试工具·能源
上海控安4 小时前
嵌入式软件安全解决之道-堆栈分析篇
测试工具·安全
zncxCOS5 小时前
【ETestDEV5教程30】ICD操作之信号组操作
python·测试工具·测试用例·集成测试
北岛三生6 小时前
MTK平台调试介绍(一)
图像处理·测试工具·测试用例
小白学大数据9 小时前
告别复杂 XPath:DeepSeek+Python 爬虫快速实践
开发语言·爬虫·python·selenium
汽车仪器仪表相关领域10 小时前
NHXJ-02汽车悬架检验台 实操型实战手册
人工智能·功能测试·测试工具·算法·安全·单元测试·可用性测试
k7Cx7e20 小时前
Thinkphp6在Postman中接收不到Post参数的解决办法
测试工具·postman
专吃海绵宝宝菠萝屋的派大星20 小时前
使用postman测试自己编写的mcp服务
测试工具·lua·postman