使用XPATH选择兄弟元素

3
给定以下标记:

给定以下标记

<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[contains(.,'Username2')]选择a元素,因此我认为//a[contains(.,'Username2')]/following-sibling::/div/button会选择正确的按钮,但这并不起作用。 我认为它甚至不是有效的XPATH。

1个回答

8

你已经很接近了:

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

要导航到cousin,您首先必须进入父级 (..) 然后再进入其兄弟节点。

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

这也可以工作:

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

这个也可以:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接