更新:所以我忽略了这个视图在ViewPager中。原来我的问题是“swipeLeft”和“swipeRight”的解释。我错过了这么久的原因是因为我会手动完成这些步骤,而我所谓的“swipeRight”与Espresso认为的刷卡方式不符。所以我没有看到问题发生,直到我在我的代码周围进行了一堆睡眠,所以我可以看到它以慢动作进行。那是我意识到这是错误的方向。所以真的,整个问题都是因为这个原因。哎呀。不知道如何处理这个问题,因为我在技术上可以自己回答这个问题,但是由于我遗漏了ViewPager位,所以它与帖子的内容有关。
原版的:
我正在对文本做一个非常简单的检查,它不想通过。
onView(withText("My text")).check(matches(isDisplayed()));
android.support.test.espresso.base.DefaultFailureHandler $ AssertionFailedWithCauseError:'在屏幕上显示给用户'与所选视图不匹配。
预期:在屏幕上显示给用户
得到:“CustomTextView {id = 2131756070,res-name = label_name,visibility = VISIBLE,width = 506,height = 53,has-focus = false,has-focusable = false,has-window-focus = true,is-clickable = false,is-enabled = true,is-focused = false,is-focusable = false,is-layout-requested = false,is-selected = false,root-is-layout-requested = false,has-input-connection = false,x = 220.0,y = 375.0,text = My text,input-type = 0,ime-target = false,has-links = false}“
这是布局代码:
<snip.snip.CustomTextView
android:id="@+id/label_name"
style="@style/typographyH4Subheading"
android:layout_centerHorizontal="true"
android:gravity="center"
android:paddingLeft="30dp"
android:paddingRight="30dp"
android:text="@{viewModel.nameLabel}"
android:ellipsize="end"
android:singleLine="true"/>
知道什么可能导致这不匹配?
视图实际上是否可见?如果它不在视口中,你需要滚动,例如isDisplayed()
将失败。另一个问题可能是给定视图的某些父级具有不可见或不可见性。
你可以试试.check(matches(withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE)));
来覆盖第一个案例和isVisible
来自这个samples来覆盖第二个案例。
你有一个给定文本的视图吗?