2016-11-30 2 views
0

Ich bin derzeit in einer Situation, in der ich den Elternteil von einem Kind auswählen muss. Das Kind hat eine ID, aber die Eltern nicht. Das ist also eine der wenigen Lösungen.appium - Auswählen des Elternknotens

WebElement child = driver.findElement(By.id("books")); 
System.out.println(child.getAttribute("name")); //prints correct node 
WebElement parent = child.findElement(By.xpath("..")); 
System.out.println(parent.getAttribute("name")); // error can't find element 
+0

Die XPath-Anweisung ermöglichen sollten Sie ein Element auswählen, die eine ID), ein Kind mit einem bestimmten Kriterien (in Ihrem Fall hat. – Rob

+0

Jede Idee, warum es nicht funktionieren? – John

+0

wie etwas versuchen“// * [@ id = "books"]/.. "in deiner ersten Suche. das sagt irgendein Element mit id =" Büchern "finden und dann zu seinem Elternteil navigieren. – Rob

Antwort

0

Um Element zu finden, basierend auf anderem Elemente, das Sie . zu Beginn der XPath verwenden müssen, um aktuelle Knoten auszuwählen. Dies sollte für Sie arbeiten:

WebElement parent = child.findElement(By.xpath("./..")); 
+0

Bereits versucht, dass, aber das gleiche Ergebnis. Es ist eine Hybrid-App, könnte es sein, dass dies ist der Grund, warum es nicht so funktioniert, wie es eigentlich funktionieren sollte? – John

+0

Nicht sicher. Sollte nicht der Grund sein. – Ievgen

0

In Appium, unmittelbar übergeordneten Knoten zu wählen, müssen Sie bieten/..

Z.B. child XPath = //android.widget[@text='name ']

Eltern XPath-Ausdruck: mobiledriver.FindElement (By.xpath ("// android.widget [@ text = 'name'] /. . „). klicken

Verwandte Themen