2017-03-29 3 views
4

J'ai un horizontal RecyclerView à l'intérieur d'une verticale RecyclerView. J'utilise ce code j'ai trouvé sur autre question:Espresso imbriqué Recycleur Vues UI test

onView(allOf(isDescendantOfA(withRecyclerView(R.id.parentVerticalRecyclerView).atPosition(parentPosition)), 
      isDescendantOfA(withRecyclerView(R.id.childHorizontalRecyclerView).atPosition(childPosition)), 
       (withText("USA")))) 
       .perform(click()); 

// It is not working for parentPosition > 0 

mais cela ne fonctionne que pour la première rangée de parent RecyclerView.

Comment puis-je cliquer sur l'élément sur l'enfant RecyclerView de la deuxième ligne du parent RecyclerView?

Répondre

2

J'ai finalement trouvé la solution pour cela:

onView(allOf(
     withId(R.id.childHorizontalRecyclerView), 
     withParent(
      withRecyclerView(R.id.parentVerticalRecyclerView).atPosition(2) 
     ) 
     ) 
).perform(RecyclerViewActions.actionOnItemAtPosition(3, scrollTo())) 
.check(matches(hasDescendant(withText("USA")))); 
+0

Quel était le problème avec matcher initial? – azizbekian

+0

Je pense que le problème était que j'utilisais isDescendantOfA. Espresso n'a pas réussi à trouver la vue. – Amisha