我尝试为下面的代码段查找属性值为 '#aaa'
的 use
元素
<svg>
<use xlink:href='#aaa'></use>
</svg>
我能够使用 css 选择器 use[* |href='#aaa']
进行定位。但我在 xpath 中需要它。我尝试了下面的 xpath 但它不起作用
(//*[name()='use'])[ * ='#aaa' or @href='#aaa']
注意:我需要使用值'#aaa'
来区分其他元素。
有人可以帮忙构建这个 xpath吗?
最佳答案
您的谓词 [ * ='#aaa' 或 @href='#aaa']
返回 false
,因为没有 href
属性>(但是xlink:href
),并且use
没有包含文本内容'#aaa'
的子节点。
请注意,任何属性的通配符是@*
,而*
则适用于任何节点(属性除外).尝试下面的 XPath
"//*[name()='use' and @*='#aaa']"
关于xlink 的 Selenium/java-xpath :href attribute,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46273093/