首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Selenium/java用于xlink:href属性

Selenium/java用于xlink:href属性
EN

Stack Overflow用户
提问于 2017-09-18 06:45:35
回答 7查看 5.5K关注 0票数 3

我试图用属性值'#aaa'来定位下面的代码片段中的'#aaa'元素

代码语言:javascript
复制
<svg>
    <use xlink:href='#aaa'></use>
</svg>

我能够使用css选择器use[* |href='#aaa']定位。但我在xpath中需要它。我在xpath下面尝试过,但它不起作用。

代码语言:javascript
复制
(//*[name()='use'])[ * ='#aaa' or @href='#aaa']

注意:我需要使用值'#aaa'来区分其他元素。

有谁能帮忙构造这个xpath吗?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2017-09-18 08:22:54

谓词[ * ='#aaa' or @href='#aaa']返回false,因为没有href那样的属性(但是是xlink:href),并且use没有文本内容'#aaa'的子节点。

请注意,任意属性的通配符是@*,而*只适用于任何节点(属性除外)。尝试在XPath下面

代码语言:javascript
复制
"//*[name()='use' and @*='#aaa']"
票数 5
EN

Stack Overflow用户

发布于 2017-11-16 06:47:39

如果有人需要..。

代码语言:javascript
复制
"//*[name()='use'][contains(@*='#aaa')]"
票数 1
EN

Stack Overflow用户

发布于 2020-01-31 07:43:36

由于没有任何建议对我有效,所以我想出了以下建议(在chrome中进行了测试):

代码语言:javascript
复制
//*[name()='use' and @*[contains(.,'#aaa)]]

评论:

  • 名称()=“使用”
    • 因为普通的标记搜索(即//use)不起作用

  • @*包含(.,‘aaa’)
    • 因为包含通配符(即包含(@*,'#aaa'))无效

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46273093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档