【问题标题】:Wait For View to be Drawn - Espresso等待视图被绘制 - Espresso
【发布时间】:2014-07-03 12:21:46
【问题描述】:
我正在使用 Espresso 为我的 Android 应用编写一些测试。
我可以使用 onView() 获取对视图的引用,然后检查它们并运行操作。
我从后台任务中检索数据时出现问题。 espresso 等到任务完成,然后我截取屏幕截图。不幸的是,该活动尚未将带有数据的视图绘制到屏幕上。所以我在我想要的实际屏幕之前得到了一个瞬间的屏幕截图。
我怎样才能解决这个问题?
【问题讨论】:
标签:
android
android-espresso
【解决方案1】:
根据情况,其中一种应该可以工作。
在截取屏幕截图之前,您可以断言检查视图是否正在显示:
onView(withId(R.id.id_of_view_to_be_screenshoted)).check(ViewAssertions.matches(isDisplayed()));
另外,您可以这样做(基于@ValeraZakharov 的想法):
onView(withId(R.id.id_of_view_to_be_screenshoted)).perform(new ViewAction() {
......
public void perform(UiController uiController, View view) {
uiController.loopMainThreadUntilIdle();
}
});