我试图找出从下面的html中检索"Projects (x)“的xpath,但没有任何结果:
<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)')]
发布于 2017-07-12 22:24:35
如果在制作XPath时知道id,并且它们是一致的,则应首选以下各项:
//a[@id="c1016"]如果您只能根据文本进行搜索,则可以使用以下命令:
//a[./span/text()="Projects (x)"]我在http://www.xpathtester.com/xpath上进行了测试,在使用了封装在根标记中的示例数据后,我成功地检索到了目标a标记(为了使其有效);但是,我不能共享结果,因为站点的save函数似乎删除了第一个引号之后XPath字段中的所有内容。
关于您在注释中添加的Java代码,我将尝试调用By.xpath(...).toString()方法,希望它能显示整个构造的XPath。这可能会指出其构造中的错误。请注意,我不了解Selenium,只能希望By.toString方法可以这样运行。
如果没有,我将使用我的集成开发环境调试器来检查由By.xpath(...)调用创建的By项,并检查它的字段,期望找到一个包含整个构造的XPath的字段。
发布于 2017-07-12 22:12:08
您可以尝试xpath:
如果要获取元素a,请使用//span[. = 'Projects (x)'][parent::a]/parent::a
如果只想要span,请删除末尾的parent::a
https://stackoverflow.com/questions/45059756
复制相似问题