web-dev-qa-db-ja.com

要素の親を取得する方法

たとえば、buttonの行内からtable要素をランダムに選択しています。
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
});
40
rsboarder

Xpathを使用することにしました。

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

最新の分度器(この記事の執筆時点で1.6.1)の時点で、構文が少し変更されました:

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

element()の代わりにfindElement()を使用します)。

38
kamituel

使用できるようになりました

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 を参照してください。

10
hkievet

実際、現時点では、xpathを使用せずに要素の親を選択する簡単な方法があります。 ElementFinderから、parentElementArrayFinderを介して親要素にアクセスし、たとえばclickメソッドを直接トリガーできます。

myElement.parentElementArrayFinder.click();

2
quirimmo