XPath指向特定表旁边的元素

时间:2013-02-21 11:41:12

标签: xpath

我有这样的HTML结构:

<table>
    <tr>
        <td>some value 1</td>
        <td>unique value 1</td>
        <td>needed value 1</td>
        <td>some value 1</td>
    </tr>


    <tr>
        <td>some value 2</td>
        <td>unique value 2</td>
        <td>needed value 2</td>
        <td>some value 2</td>
    </tr>

    <tr>
        <td>some value 3</td>
        <td>unique value 3</td>
        <td>needed value 3</td>
        <td>some value 3</td>
    </tr>

</table>

我使用Selenium,需要通过使用XPath搜索此唯一值来指向唯一值旁边的td。

我找到了解决办法:找到具有所需唯一值的tr,然后计算td的previous-sibling并使用position()= count(previous-sibling)+2

//tr[./td[text()='Unique value 2']]/td[position()=count(//tr[./td[text()='Unique value 2']]/td[text()='Unique value 2']//preceding-sibling::td)+2]

有没有更简单的方法? 问题是表的结构可能会随时间发生变化,但所需的值始终是唯一的

1 个答案:

答案 0 :(得分:2)

不使用preceding-sibling,而是使用following-sibling

//td[text()="unique value 2"]/following-sibling::td[1]