Android-Espresso:无法在ViewPager中获取元素



我们的应用程序中有一个视图寻呼机,当用户注销时,我们会显示相同的 UI。因此,由于视图寻呼机上每个页面的 UI 都相同,因此点击元素或检查它是否显示只会给我匹配多个错误。所以我的理论是,因为视图寻呼机一次加载所有内容,这就是我收到此错误的原因。更改内容描述符不起作用,因为它在所有视图中都是相同的。

该视图在未登录时为按钮,登录时将具有网格视图。

所以我的问题是 - 我如何到达按钮或我可能需要的任何元素?我无法更改应用程序代码。

使用浓缩咖啡 2.2.2

是的,问题是ViewPager至少在当前可见View的左侧和右侧创建了View。Espresso 在层次结构中的每个View上使用onView中的所有匹配器,无论它是否在屏幕上。

如果当前只有您要匹配的Views之一可见,请使用isDisplayed匹配屏幕上当前显示的View

// Matches a view that is on the screen AND has the id R.id.some_button
onView(allOf(isDisplayed(), withId(R.string.some_id))).check(matches(isDisplayed()));

如果您在将ViewonView()匹配后不check()perform(),则测试不会失败!因此,如果您想检查View是否可见,那么您也必须check(matches(isDisplayed()))

相关内容

  • 没有找到相关文章

最新更新