2014-01-20 111 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();