0

Ich habe eine Autocomplete-Box, mit einem costum "CityAdapter", wie kann ich den Button/ImageView mit Expresso-Test zugreifen? Ich filtere den costum Adapter durch cityName, also kann ich die citys mit Namen finden. HierWie in einem ImageView mit Autovervollständigung in Expresso klicken?

onView(withId(R.id.autoCompleteCities)) 
       .perform(typeText(""), closeSoftKeyboard()); 
     Activity mActivity=mActivityTestRule.getActivity(); 

onData(instanceOf(CityAdapter.class)) 
        .inAdapterView(withId(R.id.autoCompleteCities)) 
        .atPosition(0) 
        .onChildView(withId(R.id.tvFavourite)) 
        .perform(click()); 

ist ein Beispiel: enter image description here

Antwort

0

Sie tun können, die folgenden:

onView(withId(R.id.autoCompleteCities)) 
      .perform(typeText("E")); 

    onData(instanceOf(City.class)) 
      .inRoot(RootMatchers.isPlatformPopup()) 
      .atPosition(0) 
      .onChildView(withId(R.id.tvFavourite)) 
      .perform(click()); 
  • onView(~).perform(~) ist die auto complete listview im view-port zu zeigen.
  • onData(instanceOf(City.class)) Dies wird die Ansicht mit dem gleichen Objekt wie die der genannten Klasse finden (hier City.class).
  • inRoot(RootMatchers.isPlatformPopup()) Das Dropdown-Menü befindet sich in einem anderen Fenster als das Standardfenster, in dem Ihre Aktivität ausgeführt wird. Daher müssen wir angeben, dass dieses Fenster gesucht werden soll.
  • atPosition(0) Wählt den Artikel an der angegebenen Position in array-list oder list-view.
  • onChildView(withId(R.id.tvFavourite)) Wählt die untergeordnete Ansicht mit der angegebenen ID (hier image-view).

~ Referenz https://stackoverflow.com/a/45368345/8885981

+0

Vielen Dank, war sehr Ihre Erklärung usefull! Du bist der beste! –

Verwandte Themen