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

如何匹配中间包含动态子串的id属性对应的XPath表达式?

可用的XPath匹配方案如下:


1. 通用方案(XPath 2.0及以上支持,主流浏览器、Selenium等自动化工具均兼容)

组合starts-with()和ends-with()两个字符串函数,分别匹配id的固定前缀和后缀即可,表达式如下:

//*[starts-with(@id, 'panel-detail-') and ends-with(@id, '-partnerCode')]

2. XPath 1.0兼容方案(适配旧爬虫框架、低版本工具场景)

XPath 1.0没有内置ends-with()函数,可以用两种方式替代:

  • 高精度写法(完全等效ends-with效果):
//*[starts-with(@id, 'panel-detail-') and contains(substring(@id, string-length(@id) - string-length('-partnerCode') + 1), '-partnerCode')]
  • 简化写法(无其他冲突id时可直接使用):
//*[starts-with(@id, 'panel-detail-') and contains(@id, '-partnerCode')]

如果匹配结果存在多余元素,可以结合父节点属性、其他属性(如class、文本内容)进一步缩小匹配范围即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 18:54:05