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

XPath ends-with表达式失效求助:starts-with可用但ends-with无法工作

为什么XPath的ends-with()无法定位目标元素?

你的问题核心原因大概率是XPath版本兼容性:

  • starts-with()是XPath 1.0就支持的内置函数,而ends-with()是XPath 2.0及以上才新增的语法。很多自动化测试工具(比如Selenium默认使用的XPath引擎)只支持XPath 1.0,直接用ends-with()会因为语法不被识别而失效。

如果只能用XPath 1.0,你可以用字符串截取的方式模拟结尾匹配,针对目标元素的写法如下:

//div[substring(@id, string-length(@id) - string-length('listbox') + 1) = 'listbox']

原理是通过string-length()计算id属性和目标字符串的长度,截取id属性最后与目标字符串长度一致的部分,再和listbox做等值对比,实现和ends-with()相同的效果。

另外可以额外确认:页面中是否存在其他id以listbox结尾的div元素,避免定位到非目标元素,但这不是ends-with()失效的直接原因。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 03:30:54