用XPATH选择表兄弟元素

时间:2012-11-01 08:00:03

标签: xpath

给出以下标记

<div>
    <a>Username1</a>
</div>
<div>
    <button>Unblock</button>
</div>
<div>
    <a>Username2</a>
</div>
<div>
    <button>Unblock</button>
</div>
<div>
    <a>Username3</a>
</div>
<div>
    <button>Unblock</button>
</div>

如何选择带有文本Username2的a元素表兄弟的按钮元素?

我可以选择带有a的{​​{1}}元素,因此我认为//a[contains(., 'Username2')]会选择正确的按钮,但这不起作用。我认为它甚至不是有效的XPATH。

1 个答案:

答案 0 :(得分:5)

你很亲密:

//a[contains(., 'Username2')]/../following-sibling::div[1]/button

要导航到表兄弟,首先必须转到父母(..),然后转到其兄弟。

请注意following-sibling::轴选择所有后兄弟姐妹,而不仅仅是第一个。这意味着如果您只想要第一个,则必须使用[1]

这也有效:

//a[. = 'Username2']/../following-sibling::div[1]/button

那就是这样:

//div[a = 'Username2']/following-sibling::div[1]/button