如何查看Espresso在屏幕外的视图的可见性?
问题描述:
根据我在Espresso作弊表中看到的内容,有两种方法检查视图的可见性,isDisplayed()
和isCompletelyDisplayed()
。如何查看Espresso在屏幕外的视图的可见性?
我在我的主屏幕上有滑动布局,我有几个视图。我用下面的命令检查其中之一:
onView(withId(R.id.payment_btn)).check(matches(isDisplayed()));
但是,下面的错误测试停止,显示:
android.support.test.espresso.base.DefaultFailureHandler$AssertionFailedWithCauseError: 'is displayed on the screen to the user' doesn't match the selected view.
Expected: is displayed on the screen to the user
然后我想,既然视图是不可见的,我可以测试它由以下测试:
onView(withId(R.id.payment_btn)).check(doesNotExist());
然而,测试停止并显示以下信息:
android.support.test.espresso.base.DefaultFailureHandler$AssertionFailedWithCauseError: View is present in the hierarchy:
Expected: is <false>
Got: <true>
因此,任何想法如何检查视图的可见性关闭屏幕将不胜感激。谢谢。
答
当视图在屏幕之外时,它不会显示,但它仍然存在于视图层次结构中。要检查屏幕上未显示视图,请使用:onView(withId(R.id.payment_btn)).check(matches(not(isDisplayed())));
如果要检查是否显示视图,则必须滚动/滑动到视图,以使其变为可见。
谢谢,我刚刚发现它,并想回答它:)很酷,谢谢你的解释... – Hesam