2016-07-06 3 views
3

Ich schreibe Mobile App Automatisierung Testfälle für Android/iOS mit Java und Appium.Ersatz für Name Locator Strategie in Appium Version> = 1.5.0

Ich habe meine Appium-Version von 1.4.16 auf 1.5.3 aktualisiert. Jetzt kann ich den Namens-Locator nicht verwenden.

Name Locator: -

By.name("name here") 

entfernen lang veraltet Name Locator Strategie in Appium v1.5

Ich habe findElementByAccessibilityId Locator versucht. Aber das hilft mir nicht.

driver.findElementByAccessibilityId("name"); 

FYI Ich habe keine spezifische ID oder Klasse, um es zu verwenden. Was ist der Ersatz für Name Locator?

+0

In appium 1.5 "name" Locator wurde "long-veraltete Name Locator Strategie entfernen" veraltet Dieser Link wird Ihnen helfen: https://www.youtube.com/watch?v=bT3tqaLNn-Y – Manidroid

Antwort

2

Die Verwendung von Platzhaltern mit xpaths kann sehr langsam sein, da der gesamte Baum gescannt wird. Es ist auch anfällig, das falsche Element zurückzugeben, wenn es mehr als 1 Element mit demselben Namen gibt. Verwenden Sie, wo immer möglich, präzise Lokalisatoren. Beispiel: By.xpath("//UIAButton[@name='foo']")

1

Wenn AccessibilityID Sie nicht dorthin bringt, haben Sie versucht, Xpath mit etwas wie dem Folgenden zu verwenden?

+0

I habe xpath ausprobiert. Es funktioniert. Ich verweise "Text" als Name. Auf welche Attribute greift accessibilityID zu? – karan

+0

Ich glaube, dass es für iOS und Android anders ist: iOS: Es sucht zuerst nach einer Accessibility ID, die übereinstimmt; Wenn es keinen findet, sieht es nach dem Attribut ** label ** aus. Von dort habe ich festgestellt, dass es auf das gute ole ** Name ** -Attribut (obwohl ich weiß, dass viele es als ein Drop-In-Ersatz für den Namen-Locator nicht erfolgreich waren). Android: Es sieht auf das ** Android: ID ** Attribut –

Verwandte Themen