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

为何XPath统计包含指定子串的元素数量时返回错误结果

统计结果异常的原因

你使用的XPath表达式//*[contains(.,"25516.B1-")]会匹配到大量非预期节点:

  • XPath语法中.指代当前节点的完整字符串值,会自动拼接该节点下所有子孙节点的文本内容。只要某个子节点包含目标文本,它的所有上层父节点(比如外层的div、body、整个html根节点)的字符串值都会包含该目标文本,都会被判定为符合匹配条件,所以最终统计值远大于实际的3个目标元素。

修复方案

如果要仅统计直接包含目标文本的元素,可以调整XPath为仅校验节点自身的直接文本内容:

# 匹配直接子文本节点包含目标内容的元素
${count}=  Get Element Count   //*[text()[contains(.,"25516.B1-")]]
Log To Console  ${count}

如果需要排除空格、换行符的干扰,还可以加上文本标准化处理:

# 先去除文本前后的空白再匹配
${count}=  Get Element Count   //*[contains(normalize-space(.),"25516.B1-")]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 00:36:02