2014-01-24 55 views
0

我正在嘗試創建一些腳本,這些腳本需要通過大量隨機ID隨時移動HTML。他們需要獲得元素的父母 - 但我不知道如何在WebdriverJS中實現此功能。使用WebdriverJS選擇父元素

如果我通過控制檯訪問我想要的元素,我可以執行以下操作來獲取它;

document.querySelector('span[email="[email protected]"]').parentNode.parentNode 

有沒有辦法在WDJS中做到這一點?我看過,看不到任何明顯的東西 - 特別是我遇到的問題。我發現可能的解決方案可能是xPath,但我不確定以前從未使用過的語法。

在此先感謝!

回答

4

我不知道WebDriverJS的語法。但是XPath如下,你需要一種方法來適應它。

這是基於您的CSS選擇器,所以如果需要請顯示HTML。

.//span[@email='[email protected]']/../.. 

舉例來說,如果你有HTML這樣

<div> 
<div> 
<span email="[email protected]">Contact me</span> 
</div> 
</div> 

你能避免使用..上去。

.//div[./div/span[@email='[email protected]']] 

如果您有更多的層次查找,另一個方便的方法是使用ancestorXPath Axes。 另外,隨着@sircapsalot的提出,CSS選擇器規範不支持父項選擇,所以XPath是唯一的方法,除非你注入JS。

+1

希望通過CSS 4他們帶來了父母選擇器選擇器。他們一直在談論像'李! > a.active' http://www.w3.org/TR/selectors4/#subject – sircapsalot

+0

@sircapsalot:是的,那真的很方便。只是不知道要多久才能最終發佈。 –

+1

現在有方法可以選擇webdriverjs中的任何父元素..所以使用xPath是正確的路要走 – ChristianB