2016-07-20 14 views
0

Ich möchte ein Element im Layout der App mit einem benutzerdefinierten Attribut versehen und einen Automatisierungstest schreiben, der Elemente nach dem angegebenen Attribut lokalisiert.Appium android - Element nach Attribut finden

zum Beispiel das Layout enthält:

<RelativeLayout android:id="myId" 
       android:background="..." 
       android:my-attribute="myValue"> 

Und ich versuche, das Element zu finden, indem Sie:

androidDriver.findElement(By.xpath("//[@my-attribute=\"myValue\"]"); 

jedoch der Fahrer das Element zu finden, fehlschlägt.

Ich habe auch versucht

androidDriver.findElement(By.id("myId").getAttribute("my-attribute"); 

Aber ich habe null auf getAttribute ..

Wird durch Attribut unterstützt auf Android Ortung? Wird es auf Appium unterstützt? Wenn ja, habe ich einen Syntaxfehler?

Antwort

1

Sorry, ich kann keine Kommentare für jetzt posten. Können Sie my-attribute in der uiautomatorviewer sehen? Wenn Sie können dann sollte es möglich sein, aber es gibt auch Funktionen, die nicht unterstützt wird, je nachdem, welche Android-Version Sie verwenden.

+0

Ich kann my-Attribut nicht im ui Automator Viewer sehen. Ich benutze Android 6 (Marshmallow) SDK und Emulator. Irgendwelche Ideen? – haimlit

+0

Appium verwendet uiautomobilydiewer als Referenz, auf welches Element oder Attribut zugegriffen werden soll. Alles, was ich weiß, ist, dass, wenn Sie es dort nicht sehen können Sie es nicht zugreifen können. Aber wenn Sie einige Antworten möchten, habe ich diese https://github.com/appium/appium/issues/5142 gefunden. Hoffe, das hilft – Daniel

+0

Ja, ich sah, dass man hoffte, dass ich etwas vermisste. Vielen Dank! – haimlit