Android Espresso与文字不匹配,即使它恰好在那里 - " swipeRight"和" swipeLeft"

时间:2018-03-01 15:57:07

标签: android android-espresso

更新:所以我忽略了这个视图在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 = 我的文字,输入类型= 0,ime-target = false,有 - 链接= 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"/>

知道什么可能导致这种情况不匹配吗?

2 个答案:

答案 0 :(得分:0)

视图在disaplay上实际可见吗?如果它超出视口并且您需要滚动,例如isDisplayed()将失败。 另一个问题可能是给定视图的某些父级具有不可见或不可见性。

您可以尝试使用.check(matches(withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE)));来涵盖第一个案例,并isVisiblesamples覆盖第二个案例。

你是否只有一个给定文字的视图?

答案 1 :(得分:0)

看到了更新,但是如果您仍然想swipe,则应该尝试 ViewPagerActions.scrollRight()看起来与swipeRight()非常相似,但这正是我能够使Viewpager正确滑动的原因