如何编写带@attribute的XPath表达式?@input属性匹配不到元素怎么解决
问题原因
- 你写的XPath表达式
//input[@input='onSearchInput']默认匹配的是<input>标签上**名称为input**的属性,但你给出的HTML标签里对应的属性名本身带@字符,也就是属性名为@input,二者名称不匹配,自然无法命中元素。 - 补充说明:如果
@input是Vue等前端框架的事件绑定简写语法,浏览器渲染后的实际DOM里不会存在这个属性,你需要换用其他固有属性匹配元素。
可用的正确XPath表达式
场景1:DOM确实存在名为@input的自定义属性
通过属性名匹配函数指定完整属性名://input[@*[local-name()='@input' and string(.)='onSearchInput']]
场景2:@input是框架语法,DOM中无该属性
用标签自带的稳定属性组合匹配,准确率更高://input[@class='input' and @placeholder='Word search']
内容的提问来源于stack exchange,提问作者Sansli
相关产品推荐
相关产品推荐

