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

Web应用路径属性通配符失效,调用目标抛出异常求助

Issue with Wildcard (*) in HTML Element Path Matching: Exception Thrown

首先直接给结论:这大概率不是工具的内部Bug,而是你使用的通配符写法不符合该工具的路径匹配规则。

你遇到的核心问题在于,很多HTML元素定位工具(尤其是UI自动化类工具)对通配符*的支持是有限制的——它通常只能匹配当前层级下的任意单个直接子元素,而不能像你期望的那样跳过中间的多层级节点。

看你给出的实际例子:

尝试通过动态路径/HTML/BODY(1)/FORM(1)/DIV(1)/DIV(2)/DIV(4)/DIV(1)/DIV(1)/DIV(3)/DIV(1)/DIV(1)/DIV(1)/*/INPUT(1)查找Input元素,其完整路径为/HTML/BODY(1)/FORM(1)/DIV(1)/DIV(2)/DIV(4)/DIV(1)/DIV(1)/DIV(3)/DIV(1)/DIV(1)/DIV(1)//DIV/INPUT(1)

这里的//DIV是XPath风格的语法,用来匹配该节点下任意层级的后代DIV元素;而你用的*,工具会尝试在指定层级寻找直接子元素,找不到就会抛出执行异常,也就是你看到的Error - Highlighting results - Exception has been thrown by the target of an invocation。

针对你的场景(需要匹配共同前缀A/B/C、后缀Input(1),中间层级不固定的情况),正确的写法应该是用//代替*,也就是:

A/B/C//Input(1)

这个路径的意思是:找到所有以A/B/C为前缀节点,且在其任意后代层级下的Input(1)元素,完美适配你提到的A/B/C/D/E/Input(1)、A/B/C/E/F/Input(1)等多种结构。

另外可以验证下你使用的工具是否支持XPath语法:大部分现代的UI自动化框架、DOM查询工具都支持这种写法,而如果工具仅支持简单的层级路径通配,那*只能用来替换单个层级的节点名称(比如A/B/C/*/Input(1)只能匹配A/B/C/XXX/Input(1)这种单层中间节点的情况),无法满足你跨多层级的需求。

内容的提问来源于stack exchange,提问作者Michał Plich

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:48:02