android - 在 Espresso 中单击具有相同 ID 的多个 View 之一

标签 android android-testing android-espresso

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

如何使用 espresso 测试点击这些按钮中的任何一个?

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 中找到.

关于android - 在 Espresso 中单击具有相同 ID 的多个 View 之一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32354340/

相关文章:

android - 有没有办法在 Android Gradle 项目中只运行一组特定的仪器测试?

安卓测试 fragment

android - Android 中的单元测试?

android - 在 Espresso 测试中等待依赖于网络调用的按钮

android - 如何将Edittext中的文字和笑脸转为字符串?

android - 将 Android 服务绑定(bind)到 Fragment 或从 Fragment 解除绑定(bind)(在 ViewPager 中)

java - Android Camera Preview - 只取一部分屏幕数据

Android 测试 BuildConfig 字段

android - Android P Preview : Detected problems with API compatibility error 上的 Espresso 测试

java - 安卓 Espresso : PerformException