2014-01-20 151 views
32

例如,我從table的行內隨機選取一個button元素。
在找到button之後,我想要檢索包含選定按鈕的table的行。如何獲取元素的父項

繼承人是我的代碼片段:

browser.findElements(by.css('[ng-click*=submit]')).then(function (results) { 
    var randomNum = Math.floor(Math.random() * results.length); 
    var row = results[randomNum]; 
     //^Here I want to get the parent of my random button 
}); 

回答

23

決定使用XPath。

var row = results[randomNum].findElement(by.xpath('ancestor::tr')); 
+21

'by.xpath(「..」)'也給你的父元素。 – borisdiakur

+1

thx @樂高,更短,通用 – rsboarder

+1

這是否已經工作了?現在我無法在文檔中看到對xpath的任何引用。 – mariachimike

28

由於最近的量角器(1.6.1截至發稿時)的,語法改了一下:

var row = results[randomNum].element(by.xpath('..')); 

(使用element()而不是findElement())。

1

實際上,目前有一種更簡單的方法來選擇元素的父元素,以避免使用xpath。 從一個ElementFinder可以簡單地通過parentElementArrayFinder訪問父元素,並且例如隨後直接觸發click方法:

myElement.parentElementArrayFinder.click();