在 Espresso 中单击具有相同 ID 的多个视图之一

Clicking on one of many views with same id in Espresso

我有一个布局 (A) 多次包含另一个布局 (B)。布局 B 包含一个 ID 为 R.id.my_button 的按钮。因此,布局 A 包含许多具有相同 ID 的按钮。

如何测试使用浓缩咖啡点击这些按钮中的任何一个?

onView(withId(R.id.my_button)).perform(click()); 在这种情况下并没有真正做任何事情。

可能您的布局 B 还包含一些独特的信息,比方说 TextViewunique name。在这种情况下,您的代码将如下所示:

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

可以在 Espresso Wiki # ViewMatchers 中找到更多示例。