我试图找出检索" Projects(x)"的xpath。来自以下html,但没有任何结果:
<li class="">
<span id="c1025_ctl">
<a id="c1025">
<span>Similar people</span>
</a>
</span>
</li>
<li class="tabs-selected">
<span id="c1016_ctl">
<a id="c1016">
<span>Projects (x)</span>
</a>
</span>
</li>
<li class="">
<span id="c1037_ctl">
<a id="c1037">
<span>Info</span>
</a>
</span>
</li>
到目前为止,//a[contains(.,'Projects (x)')]/span
和//a[contains(.,'Projects (x)')]
答案 0 :(得分:1)
如果在制作id
时知道XPath
并且一致,则应首选以下内容:
//a[@id="c1016"]
如果您只能根据文字进行搜索,可以使用:
//a[./span/text()="Projects (x)"]
我在http://www.xpathtester.com/xpath上测试了这些,我在使用封装在根标记中的示例数据后成功检索了目标a
标记(为了使其成为有效的XML);但我无法分享结果,因为网站的save
函数似乎会在第一次引用后删除XPath字段中的所有内容。
关于您在评论中添加的Java
代码,我会尝试调用By.xpath(...).toString()
方法,希望它能显示整个构造的XPath。这可能会指出其构造中的错误。请注意,我不了解Selenium,只能希望By.toString
方法会以这种方式运行。
如果没有,我会使用我的IDE调试器检查By
调用创建的By.xpath(...)
项,并查看其中的字段,希望找到一个包含整个构建的XPath。
答案 1 :(得分:0)
你可以试试xpath:
//span[. = 'Projects (x)'][parent::a]/parent::a
如果您想获取元素a
,
如果只需要parent::a
span