2017-02-11 58 views
0

我试过了多个选项。两者都不适合我。是否可以使用uiautomator选择微调元件?用uiautomator选择一个微调元件

代码示例:

UiObject spinner = mDevice.findObject(new UiSelector().className("android.widget.Spinner") 
      .instance(0)); 

     try { 
      Integer cnt = spinner.getChildCount(); 
      if (cnt > 0) { 
       UiObject item = spinner.getChild(new UiSelector().index(cnt-1)); 
       item.click(); 
      } 
     } catch (UiObjectNotFoundException e){} 
+0

而不是使用UI自动化,你需要使用espresso库:http://stackoverflow.com/questions/31420839/android-espresso-check-selected-spinner-text –

回答

1

这个片段会从微调

(new UiScrollable(new UiSelector().resourceId("com.dtmilano.android.demoapplication:id/spinner").index(1).packageName("com.dtmilano.android.demoapplication"))).click(); 
    List<UiObject2> children = mDevice.findObjects(By.res("android:id/text1").pkg("com.dtmilano.android.demoapplication")); 
    for (UiObject2 uio2 : children) { 
     if ("New Zealand".equals(uio2.getText())) { 
      uio2.click(); 
      break; 
     } 
    } 

它使用一个样本的活动有微调显示国家中选择一个项目

enter image description here

的第一部分是由自动生成的CulebraTester的功能。

+0

谢谢迭戈,你知道偶然吗如果UIObject2不存在会怎么样?与UIObject不同,它没有'exists()'方法 – cur4so

+0

引发异常 –

相关问题