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

加油!你是最棒的!

相关推荐
星星码️1 天前
博客系统 Web 端测试报告:功能、自动化与性能
功能测试·测试工具·压力测试·模块测试·测试覆盖率
han68891 天前
selenium之实战
笔记·python·selenium·测试工具·自动化
Madison-No71 天前
多语言聊天大模型--测试报告
linux·git·python·selenium·jmeter·自动化·postman
.又是新的一天.2 天前
AI接口测试03(操作数据库/管理文档/mock/自动化测试/定时任务/AI导师)
软件测试·测试工具·接口测试·apifox
Wokoo72 天前
自动化测试入门:核心场景、回归测试与 Web 自动化环境搭建
java·开发语言·测试工具
德思特2 天前
德思特混频器参数详解:5MHz–40GHz 宽频段与低噪声 LO 设计
测试工具·自动化·射频工程
wuyk5552 天前
《WiFi 嵌入式物联网开发全套实战》| 第 33 章 Wireshark 无线抓包环境搭建、802.11 帧过滤规则
物联网·测试工具·wireshark
落魄大学生之流水线上谋生计5 天前
Selenium 入门到实战:用 Python 写出稳定的浏览器自动化
python·selenium·自动化