RecyclerView Interactions
Use espresso-contrib for interacting with RecyclerView items.
Click and assert on RecyclerView
java
import androidx.test.espresso.contrib.RecyclerViewActions;
// Scroll to position
onView(withId(R.id.recycler)).perform(
RecyclerViewActions.scrollToPosition(10)
);
// Click item at position
onView(withId(R.id.recycler)).perform(
RecyclerViewActions.actionOnItemAtPosition(2, click())
);
// Click item with specific text
onView(withId(R.id.recycler)).perform(
RecyclerViewActions.actionOnItem(
hasDescendant(withText("Alice")),
click()
)
);
// Click a button inside a RecyclerView item
onView(withId(R.id.recycler)).perform(
RecyclerViewActions.actionOnItemAtPosition(0,
new ViewAction() {
@Override public Matcher<View> getConstraints() { return isDisplayed(); }
@Override public String getDescription() { return "Click delete button"; }
@Override public void perform(UiController c, View v) {
v.findViewById(R.id.delete_btn).performClick();
}
})
);