例如,我在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
});
答案 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();