You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python的Selenium定位含中间动态部分的选择器?

解决中间含动态数字的ID选择器问题

嗨,我来帮你搞定这个CSS选择器的难题!你之前处理末尾动态ID的方法很对,但遇到中间有动态值的情况,确实需要换个思路——直接在属性选择器后面加-1是无效的语法,这就是你报错的原因。

针对#tab-t0-1这类ID(其中0是动态数字,其余部分固定),我们可以组合使用CSS属性选择器的开头匹配和结尾匹配规则,精准定位目标元素:

  • 使用[id^='tab-t']匹配所有ID以tab-t开头的元素
  • 再叠加[id$='-1']匹配所有ID以-1结尾的元素

把两者组合起来,最终的选择器就是:

[id^='tab-t'][id$='-1']

这个选择器会完美匹配所有形如tab-tX-1的ID(X可以是任意数字或字符,只要开头和结尾符合要求),完全替代原来的#tab-t0-1这类带动态值的固定ID选择器。

如果你的动态部分前后的静态内容更复杂,也可以用类似的组合逻辑——比如如果ID是tab-abcXdef-2(X动态),就可以用[id^='tab-abc'][id$='def-2']来匹配。

另外补充个小技巧:如果动态部分是中间的某段固定格式内容(比如都是数字),CSS本身不支持正则匹配,但这种开头+结尾的组合在大多数场景下已经足够解决问题啦!

内容的提问来源于stack exchange,提问作者sprogissd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:20:40