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

XPath无法排除hidden类型input元素,该如何修复?

修复你的XPath定位问题

首先咱们来拆解下原XPath失效的原因:
你写的XPath是从input的属性节点入手,判断属性值是否包含指定关键词且不包含"hidden",再取父元素。但第一个隐藏input的value属性值是error.password.invalid——里面包含了"password",且这个属性值本身不含"hidden",所以它的父元素(也就是那个隐藏input)被错误匹配到了。

正确的思路应该是先直接排除所有type="hidden"的input元素,再筛选符合属性关键词条件的元素。试试这两个方案:

方案一:通用匹配(保留你的关键词判断逻辑)

.//input[not(@type='hidden') and (@*[contains(., "otp") or contains(., "ode") or contains(., "assword") or contains(., "numeric")])]

方案二:精准匹配(结合目标元素的inputmode="numeric"特征)

如果你的目标元素固定带有inputmode="numeric"属性,也可以直接写得更简洁:

.//input[not(@type='hidden') and @inputmode='numeric']

这两种写法都会精准选中你需要的第二个input元素,不会再匹配到隐藏的那个了。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 07:02:54