我有以下HTML高级导航的webdriver
<div id="element1">welcome</div>
<div>username</div>
现在的问题是,我必须选择下一个div元素旁边的“部件1”。我知道,我可以从父母构建xpath。但是我需要选择一个非常接近元素的元素。怎么可能?
我有以下HTML高级导航的webdriver
<div id="element1">welcome</div>
<div>username</div>
现在的问题是,我必须选择下一个div元素旁边的“部件1”。我知道,我可以从父母构建xpath。但是我需要选择一个非常接近元素的元素。怎么可能?
这将选择所有兄弟的element1
节点之后<div>
元素:
id('element1')/following-sibling::div[1]
这将选择element1
之后的第一个兄弟节点:
id('element1')/following-sibling::div
这在element1
节点之后选择第一同级<div>
元件节点iff它是一个<div>
元素:
id('element1')/following-sibling::*[1][local-name(.)='div']
所有这三个例子都会选择你的元素(如果还有更多匹配的话可能会多一些),所以选一个最适合你的意图。
请注意,您也可以使用a simple CSS selector执行所有操作。它相当于最后一个XPath。它会更快。
#element1 + div
可以使用following-sibling
:
driver.findElement(By.id("element1")).findElement(By.xpath("./following-sibling::div"));
'follow-sibling :: * [1]'表示*第一个兄弟* *对吗? –
@Babai是的。 'follow-sibling :: * [1] [local-name(。)='div']'接下来的第一个兄弟节点,然后测试节点名是否为'div'。 –
是的,这意味着我现在正在慢慢地获得'xpath' .. :) –