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

Selenium动态元素定位

动态元素定位方法

一:使用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()处理动态属性。

<!-- 匹配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> 元素

加油!你是最棒的!

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

相关文章:

  • 2025牛客多校第七场 双生、象牙 个人题解
  • gophish钓鱼流程
  • 【测试报告】SoundWave(Java+Selenium+Jmeter自动化测试)
  • Android 16 的用户和用户组定义
  • RabbitMQ 声明队列和交换机详解
  • 飞算JavaAI vs 传统开发:效率与质量的双重突破
  • MLAG双活网络妙招:BGP + 静态VRRP实现智能负载均衡
  • 新出Hi3591BV100 AI处理器
  • Agent用户体验设计:人机交互的最佳实践
  • 【前端基础】16、结构伪类(注:粗略说明)
  • 卫星授时原理详解
  • 模考50题卷一 05
  • 《算法导论》第 19 章 - 斐波那契堆
  • 【Node.js从 0 到 1:入门实战与项目驱动】1.4 Node.js 的发展与生态(历史版本、LTS 版本、npm 生态系统)
  • Apache RocketMQ:消息可靠性、顺序性与幂等处理的全面实践
  • 使用docker compose 部署dockge
  • Nmap 渗透测试弹药库:精准扫描与隐蔽渗透技术手册
  • 心理咨询|学生心理咨询评估系统|基于Springboot的学生心理咨询评估系统设计与实现(源码+数据库+文档)
  • CSS accent-color:一键定制表单元素的主题色,告别样式冗余
  • GSON 框架下百度天气 JSON 数据转 JavaBean 的实战攻略
  • 基于 Spring Boot 的登录功能实现详解
  • 基于飞算JavaAI的日志监测系统开发实践:从智能生成到全链路落地
  • 34-Hive SQL DML语法之查询数据-3
  • <typeAliases>
  • Django路由学习笔记
  • word格式设置-论文写作,样式,字号等
  • 在Debian上安装MySQL
  • java设计模式之开闭原则使用举例
  • 5种无需USB线将照片从手机传输到笔记本电脑的方法
  • Linux 流编辑器 sed 详解