-1

Je suis à la recherche sur les échantillons d'espresso, mais ils ne donnent que des méthodes directes pour effectuer un clic à une position à l'aide ci-dessous la méthodeComment trouver l'enfant à une position de l'élément à espresso pour recyclerview

actionOnItemAtPosition 

Dans la plupart des cas, nous avoir besoin de cliquer sur l'un des multiples enfants sur l'article à un certain poste. Comme un TextView, ImageView et Checkbox.

Je ne vois pas de moyen simple d'atteindre la case à cocher à la position 25 si mon Recyclerview a 50 articles. Quelqu'un peut-il avoir une solution simple pour cela autre que la définition de ma propre implémentation ViewAction.

Répondre

0

Vous pouvez créer votre propre withIndex matcher comme ceci:

public static Matcher<View> withIndex(final Matcher<View> matcher, final int index) { 
    return new TypeSafeMatcher<View>() { 
     int currentIndex = 0; 

     @Override 
     public void describeTo(Description description) { 
      description.appendText("with index: "); 
      description.appendValue(index); 
      matcher.describeTo(description); 
     } 

     @Override 
     public boolean matchesSafely(View view) { 
      return matcher.matches(view) && currentIndex++ == index; 
     } 
    }; 
} 

Exemple d'utilisation

int indexToSelect = 4; 
onView(allOf(withIndex(withId(R.id.textViewToSelect), indexToSelect), isDescendantOfA(withId(R.id.customRecyclerView)))).perform(click());