如何获取元素的父元素

时间:2014-01-20 15:35:37

标签: dom protractor end-to-end

例如,我在button的行中随机选择table元素。
找到button后,我想检索包含所选按钮的table行。

Heres是我的代码片段:

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
});

4 个答案:

答案 0 :(得分:37)

截至最近的Protractor(撰写本文时为1.6.1),语法有所改变:

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

(使用element()代替findElement())。

答案 1 :(得分:23)

决定使用xpath。

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

答案 2 :(得分:10)

您现在可以使用

var element = element(by.css('.foo')).getWebElement() var parentElement = element.getDriver() // gets the parent element

获取父元素。有关详细信息,请参阅http://www.protractortest.org/#/api?view=webdriver.WebElement.prototype.getDriver

答案 3 :(得分:2)

实际上,目前有一种更简单的方法来选择元素的父级,避免使用xpath。 从ElementFinder开始,您只需通过parentElementArrayFinder访问父元素,然后直接触发click方法:

myElement.parentElementArrayFinder.click();