2016-02-06 7 views
10

Gemäß der neu veröffentlichten Style Guide, mit by.xpath() Locators gilt als eine schlechte Praxis. Ich versuche tatsächlich, dem Vorschlag zu folgen, aber bleibe dran, ein Elternelement zu bekommen.Empfohlener Weg, um Elternelement in Winkelmesser zu lokalisieren

Derzeit verwenden wir .. XPath-Ausdruck übergeordnetes Elements zu erhalten:

this.dashboard = element(by.linkText("Dashboard")).element(by.xpath("..")); 

Wie kann ich übergeordnetes Element mit anderen in Protractor/WebDriverJS Locators gebaut ausfindig zu machen?

+1

Soweit ich weiß, XPath mit dem Ausdruck „..“ ist der einzige Weg, Eltern zu bekommen des Elements. Normalerweise benutze ich cssSelector, um das Element zu finden, aber ich muss immer noch xpath verwenden, um das übergeordnete Element zu erhalten. – Buaban

Antwort

7

Während ich den Style Guide schreibe und zustimme, dass xpath vermieden werden soll, gibt es immer eine Ausnahme, die die Regel beweist. Ich denke, das ist einer dieser Fälle :)

+1

Ich stimme @quirimmo zu, dass diese Ausnahme nicht mehr gültig ist. [Hier finden Sie ein inoffizielles Dokument über parentElementFinder] (http://w3cgeek.com/locating-parent-elements-with-parentementarrayfinder.html) –

4

Momentan gibt es eine einfachere Möglichkeit, das Elternelement eines Elements auszuwählen, das die Verwendung von xpath verhindert. Von einer ElementFinder können Sie einfach das Element Elternteil durch parentElementArrayFinder zugreifen und dann zum Beispiel lösen die click Methode:

myElement.parentElementArrayFinder.click();

Verwandte Themen