用XPATH选择表兄弟元素

Har*_*rri 2 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>
Run Code Online (Sandbox Code Playgroud)

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

我可以选择a元素//a[contains(., 'Username2')],所以我认为//a[contains(., 'Username2')]/following-sibling::/div/button会选择正确的按钮,但这不起作用.我认为它甚至不是有效的XPATH.

Tom*_*lak 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