2017-02-11 14 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オートメーションを使用する代わりに、エスプレッソライブラリを使用する必要があります。http://stackoverflow.com/questions/31420839/android-espresso-check-selected-spinner-text –

答えて

1

このコードは、それがスピナーを示す国と

enter image description here

サンプルアクティビティを使用していますスピナー

(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; 
     } 
    } 

から項目を選択します最初の部分はによって自動的に生成されましたフィーチャーはCulebraTesterです。

+0

Diegoに感謝します。偶然知っていますかUIObject2が存在しない場合はどうなりますか? UIObjectとは異なり、 'exist()'メソッドを持たない – cur4so

+0

例外をスローする –