2

I have a layout (A) that includes another layout (B) multiple times. Layout B contains a button with id R.id.my_button. As a result, layout A contains many of those buttons with the same id.

How do I test clicking on any of those buttons with espresso?

onView(withId(R.id.my_button)).perform(click()); doesn't really do anything in this case.

Sassa
  • 3,294
  • 2
  • 28
  • 42

1 Answers1

6

Probably, your layout B contains also some unique information, let's say TextView with unique name. In this case your code will look like this:

onView(allOf(withId(R.id.my_button), hasSibling(withText("unique name")))).perform(click());

More examples can be found in Espresso Wiki # ViewMatchers.

MyDogTom
  • 4,486
  • 1
  • 28
  • 41