我有以下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' .. :) –