2017-08-03 1 views

Antwort

0

Ja. Ich habe viele Anwendungen automatisiert, die wenige, wenn überhaupt, Ressourcen-IDs haben. Selbst diejenigen, die Ressourcen-IDs verwenden, beachten, dass sie im Gegensatz zu HTML nicht immer eindeutig sind - viele Elemente können trotzdem die gleiche Ressourcen-ID enthalten.

Wenn ich mit einer Ressource-ID versehen bin und ich die Seitenelemente genau untersucht habe und sehe, dass die ID einzigartig ist, werde ich sie oft verwenden. Elemente werden oft konsistenter mit XPaths gefunden, was meiner Meinung nach einen viel detaillierteren Locator ermöglicht.

Mehr als oft nicht, ich werde so etwas wie

"//android.widget.TextView[@text='whatever'] 

tun oder weiter:

"//android.widget.TextView[@text='whatever' and @index=1]" 
+0

Aber meine Frage ist, dass wir eine native Android-Anwendung, die mit dexguard verschleiert wird. Nach der Verschleierung kann uiautomator die Ressourcen-IDs nicht sehen. Wir haben die Ressourcen-IDs-Konfiguration in der Dexguard-Konfigurationsdatei behalten, aber die Ressourcen-IDs sind nicht sichtbar. haben Sie Automatisierung auf objektiver nativer Release apk getan? –

+0

@Eric Lafortune irgendeinen Vorschlag? –

+0

Ich kenne den Obfuscator nicht direkt. Versteckt es mehr als die Ressourcen-ID? Der Punkt meiner Antwort ist, dass Sie nicht notwendigerweise Ressourcen-IDs haben müssen, um brauchbare Lokatoren zu bilden. Oder machst du etwas anderes, das die Ressourcen-ID erfordert? –