1

In UIAutomator Viewer kann sehen, dass die Marker nichts außer dem Index einzigartig haben. UI AutomatorWie rufe ich einen Klick auf den Google Maps-Marker im UI Automator auf?

Ich versuchte, ein Klick auf eine bestimmte Markierung in der folgenden Art und Weise zu simulieren:

UiObject gMap = mDevice.findObject(new UiSelector().descriptionContains("Google Map")); 
UiObject marker = mDevice.findObject(gMap.getSelector().index(1)); 
marker.clickAndWaitForNewWindow(); 

Aber der Klick ist nicht geschehen. Wie kann ich das Klicken auf die Marker simulieren?

Antwort

0

CulebraTester Verwendung und eine Beispielkartenanwendung (wie abgebildet)

enter image description here

die 3 Marker hat: die 2 rote Titel haben und Snippet und die blaue nicht der Fall ist, können Sie sehen, wie Sie den generierten Code abweichen.

mDevice.findObject(By.desc("title_of_marker1. snippet_of_marker1.").clazz("android.view.View").text(Pattern.compile("")).pkg("com.example.diego.mymapapplication")).clickAndWait(Until.newWindow(), DEFAULT_TIMEOUT); 
mDevice.findObject(By.desc("title_of_marker2. snippet_of_marker2.").clazz("android.view.View").text(Pattern.compile("")).pkg("com.example.diego.mymapapplication")).clickAndWait(Until.newWindow(), DEFAULT_TIMEOUT); 
mDevice.findObject(By.desc("Google Map").clazz("android.view.View").text(Pattern.compile("")).pkg("com.example.diego.mymapapplication")).clickAndWait(Until.newWindow(), DEFAULT_TIMEOUT); 

der 3. Selektor ist zu breit und mehrdeutig.

Ich denke, wenn Sie Titel und/oder Snippet hinzufügen, haben Sie kein Problem, auf sie zu klicken.

0

Verwenden Sie nicht gMap.getSelector(). Sie sollten childSelector verwenden Markierungen innerhalb der Karte anzeigen suchen

UiObject marker = mDevice.findObject(UiSelector() 
     .descriptionContains("Google Map") 
     .childSelector(UiSelector().instance(1)) 
) 

Und versuchen marker.waitForExists(5000) zu verwenden, bevor klicken. Normalerweise erscheinen sie nicht sofort auf der Karte

Verwandte Themen