当前位置: 首页 > 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.lryc.cn/news/617133.html

相关文章:

  • glide缓存策略和缓存命中
  • 探秘华为:松山湖的科技与浪漫之旅
  • 打烊:餐厅开业前的“压力测试”
  • 《汇编语言:基于X86处理器》第13章 高级语言接口(1)
  • 前端实现 MD5 + AES 加密的安全登录请求
  • JVM基础【Java】
  • leetcode-hot-100 (图论)
  • 心理咨询|学生心理咨询评估系统|基于Springboot的学生心理咨询评估系统设计与实现(源码+数据库+文档)
  • python面向对象设计模式
  • 电子电气架构 --- 软件定义汽车的驱动和挑战
  • 飞算JavaAI vs 传统开发:效率与质量的双重突破
  • 【MySQL✨】服务器安装 MySQL 及配置相关操作
  • Orange的运维学习日记--38.MariaDB详解与服务部署
  • B站直播, 拼接4个窗口,能否实现
  • Deepoc如何让传统码垛机器人获得“类人决策力“​
  • 服务器配置实战:从 “密码锁” 到 “分工协作” 的知识点详解
  • docter的使用、vscode(cursor)和docker的连接,详细分析说明
  • Django Request 与 DRF Request 的区别
  • 低代码开发实战案例,如何通过表单配置实现数据输入、数据存储和数据展示?
  • 智能双行框!百度全量上线AI搜索,是革新浪潮还是昙花一现?
  • ECCV 2024 论文解读丨具身智能、机器人研究最新突破创先点分享合集
  • SQL刷题
  • 使用行为树控制机器人(三) ——通用端口
  • 想冲华为AI认证,怎么选方向?
  • 疯狂星期四文案网第36天运营日记
  • 【Docker-Day 13】超越默认Bridge:精通Docker Host、None与自定义网络模式
  • IDE认知革命:JetBrains AI Assistant插件深度调教手册(终极实战指南)
  • 随身WiFi技术军备赛白热化:WiFi6架构下放中端市场,格行中兴华为三足鼎立;从芯片到场景的 10 款标杆产品深度解析
  • 标准IO详解(fgets、gets、fread、fwrite、fseek 等应用)
  • 面试题-----微服务业务