2015-01-19 8 views
7

Mam ListView ze zdjęciami i tekstem. Kiedy klikam element, otrzymuję błądLista wyświetleń Android Espresso View click

android.support.test.espresso.AmbiguousViewMatcherException: 'with id: com.cifrasoft.telefm:id/cardsGridView' matches multiple views in the hierarchy. 
Problem views are marked with '****MATCHES****' below. 

używam następujący kod:

onData(hasToString(startsWith("Item Text"))) 
      .inAdapterView(withId(R.id.cardsGridView)) 
      .perform(click()); 

mogę kliknąć ListView używając pozycję Adapter bez zapałek lub startWith?

+3

Oznacza to, że masz wiele widoków z nazwanym identyfikatorem w hierarchii widoku. Czy możesz opublikować cały komunikat o błędzie? – haffax

+1

Tak, oczywiście. Ale pełny błąd jest zbyt długi.http: //pastebin.com/eahDGDMb – rz0

+2

Patrząc na całą hierarchię wydaje się, że masz ViewPager, który pokazuje wiele stron, z których trzy mają AdapterView z kartami IDGridView. Więc masz jeden AdapterView, ViewPager, z innym zagnieżdżonym AdapterView, twój ListView. To, co może zadziałać, to zwrócenie widoków zwróconych z poszczególnych identyfikatorów lub znaczników Adapter.getView i użycie narzędzia isDescendantOf() w wywołaniu inAdapterView() razem z withId. – haffax

Odpowiedz

9

Spróbuj z atPosition(). na przykład

onData(hasToString(startsWith("Item Text"))) 
      .inAdapterView(withId(R.id.cardsGridView)).atPosition(0) 
      .perform(click()); 

z indeksem 0, kliknie pierwszy znaleziony pasujący widok.

Powiązane problemy