XPath:仅基于text()获取follow-sibling

时间:2016-01-12 13:11:58

标签: xml selenium xpath

将相对XPathSelenium一起使用,有没有办法获取following-sibling的文本内容,使用两个兄弟姐妹的文本内容作为指导?

<table class="table">
    <tbody>
        <tr>
            <td>Looking for</td>
            <td class="text-right">This!</td>
        </tr>
    </tbody>
</table>

在上面的示例中,我想根据文本This!检索文本代码段Looking for

路径需要 relative ,因为这些表格单元格可以出现在页面的任何位置。以上是整个网页的剪切。在同一<tr>块之前还可以插入其他内容。

我试过这个似乎找到了第一个单元格:

//text()[contains(.,'Looking for')]

但是,我正在努力学习如何在2 nd 兄弟中获取文本。

我的尝试看起来像(错误地):

//text()[contains(.,'Looking for')]/following-sibling::text()

3 个答案:

答案 0 :(得分:2)

你几乎把它弄好了,你走了,你只需要显示你想要寻找的位置。我希望这会有所帮助:

//td[text()="Looking for"]/following-sibling::td[text()="This!"]

答案 1 :(得分:1)

您也可以使用以下内容找到第二个兄弟:

//table[@class='table']/descendant::td[last()]

要查找找到第一个兄弟姐妹,可以使用以下内容:

//table[@class='table']/descendant::td[last()-1]

答案 2 :(得分:0)

你可以使用,

//td[contains(text(),'Looking for')]//following-sibling::td[contains(text(),'This!')]

有关兄弟姐妹和祖先的更多参考click here