1

在UIAutomator Viewer中可以看到標記除索引外沒有任何唯一的東西。 UI Automator如何在UI Automator中調用Google地圖標記標記點擊?

我試圖模擬一個特定的標記點擊以下面的方式:

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

但點擊沒有發生。我怎樣才能模擬點擊標記?

回答

0

使用CulebraTester和一個樣本地圖應用(如所示)

enter image description here

,其具有3個標記

:2紅具有標題和摘要和藍色不中,可以看到如何生成的代碼不同。

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); 

第3個選擇器太寬泛且模糊。

我想如果你添加標題和/或片段,你將沒有問題點擊它們。

0

請勿使用gMap.getSelector()。您應該使用childSelector搜索地圖視圖

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

內標記和嘗試點擊之前使用marker.waitForExists(5000)。通常它們不會立即出現在地圖上

相關問題