使用Selenium和Python定位带有动态ID的页面元素
动态ID元素的部分匹配定位方法
完全可以通过ID前缀匹配定位对应的元素,不同场景的实现方案如下:
- 原生JavaScript场景
直接用CSS前缀属性选择器[id^="匹配前缀"]即可,^=是CSS选择器中专用于匹配属性值以指定字符串开头的语法:
如果需要限定只匹配div标签的元素,修改选择器为// 获取所有id以start-ads开头的元素 const targetElements = document.querySelectorAll('[id^="start-ads"]'); // 仅获取第一个匹配的元素 const firstTarget = document.querySelector('[id^="start-ads"]');div[id^="start-ads"]即可。 - jQuery场景
沿用和原生一致的属性选择器语法即可:const targetElements = $('[id^="start-ads"]'); - 自动化测试/爬虫的XPath定位场景
使用XPath内置的starts-with()函数实现前缀匹配:// 匹配所有id以start-ads开头的元素 //*[starts-with(@id, "start-ads")] // 仅匹配div标签的对应元素 //div[starts-with(@id, "start-ads")]
内容的提问来源于stack exchange,提问作者PECTAPT
相关产品推荐
相关产品推荐

