如何获取元素的父元素

rsb*_*der 40 dom end-to-end protractor

例如,我button从a 的行中随机选择一个元素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
});
Run Code Online (Sandbox Code Playgroud)

kam*_*uel 38

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

var row = results[randomNum].element(by.xpath('..'));
Run Code Online (Sandbox Code Playgroud)

(用来element()代替findElement()).


rsb*_*der 23

决定使用xpath.

var row = results[randomNum].findElement(by.xpath('ancestor::tr'));
Run Code Online (Sandbox Code Playgroud)

  • `by.xpath('..')`也会给你父元素. (26认同)
  • @mariachimike你可能已经想到了这一点,但对于未来的搜索者,我在量角器1.3.0和'element(by.xpath('..'))'仍然有效.当前的最新版本是1.3.1,更改日志只包含一个修复程序,所以它也可以在那里工作,我想不出它会在不久的将来被取出. (3认同)

hki*_*vet 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.

  • 其他答案已经过时(尽管仍然有效),这个答案很有效,而且更简洁.谢谢! (2认同)
  • 失败:element(...).getDriver 不是函数 (2认同)