2015-01-19 15 views
7

Ho ListView con immagini e testo. Quando provo a cliccare voce, ottengo l'erroreAndroid Espresso ListView click item

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. 

Io uso il seguente codice:

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

posso cliccare ListView utilizzando posizione Adapter, senza fiammiferi o startWith?

+3

Ciò significa che si dispone di più viste con l'ID indicato nella gerarchia della vista. Puoi pubblicare l'intero messaggio di errore? – haffax

+1

Sì, certo. Ma l'errore completo è troppo lungo.http: //pastebin.com/eahDGDMb – rz0

+2

Dal punto di vista dell'intera gerarchia, sembra che tu abbia un ViewPager che mostra più pagine con tre di esse che hanno un AdapterView con l'ID cardsGridView. Quindi hai un AdapterView, il ViewPager, con un altro AdapterView annidato, il tuo ListView. Ciò che potrebbe funzionare è fornire le Visualizzazioni restituite da Adapter.getView singoli ID o Tag e utilizzare un matcher isDescendantOf() nella chiamata inAdapterView() insieme all'Idd. – haffax

risposta

9

Provare con atPosition(). per esempio.

con indice 0, farà clic sulla prima visualizzazione corrispondente trovata.

Problemi correlati