我有以下HTML
<div id="element1">welcome</div>
<div>username</div>
现在的问题是,我必须选择“element1”旁边的下一个div元素。我知道,我可以从他们的父母那里建立xpath。但我需要选择一个非常接近元素的东西。怎么可能?
答案 0 :(得分:6)
这将选择<div>
节点之后的所有同级element1
元素:
id('element1')/following-sibling::div
这将选择<div>
节点后的第一个兄弟element1
元素:
id('element1')/following-sibling::div[1]
这将选择element1
节点之后的第一个兄弟节点iff它是<div>
元素:
id('element1')/following-sibling::*[1][local-name(.)='div']
所有这三个例子都会选择你的元素(如果有更多的匹配,可能会选择更多的元素),所以选择一个最符合你意图的元素。
请注意,您也可以使用a simple CSS selector完成所有这些操作。它相当于最后一个XPath。它会更快。
#element1 + div
答案 1 :(得分:3)
您可以使用following-sibling
:
driver.findElement(By.id("element1")).findElement(By.xpath("./following-sibling::div"));