如何使用Espresso检查屏幕外的View的可见性?

问题描述 投票:2回答:1

根据我在Espresso备忘单中看到的内容,有两种方法可以检查View,isDisplayed()isCompletelyDisplayed()的可见性。

我在主屏幕上有滑动布局,我有几个视图。我正在通过以下命令检查其中一个:

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

然后我认为,由于View不可见,我可以通过以下测试来测试它:

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> 

那么,如何在屏幕上查看View的可见性?

android android-espresso
1个回答
6
投票

当视图在屏幕外时,它不会显示,但它仍然存在于视图层次结构中。要检查屏幕上是否未显示视图,请使用:onView(withId(R.id.payment_btn)).check(matches(not(isDisplayed())));

如果要检查是否显示,则必须滚动/滑动到视图,以使其可见。

© www.soinside.com 2019 - 2024. All rights reserved.