给出以下标记
<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。
答案 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