如何在安卓意式浓缩咖啡测试中向下滚动屏幕?我需要验证屏幕上显示的文本

我正在执行下面的测试来验证屏幕上的文本,文本存在于视图上,但需要滚动页面才能手动查看文本。

 onView(withText("Launch")).check(ViewAssertions.matches(isDisplayed()));
    onView(withText("January 2010")).check(ViewAssertions.matches(isDisplayed()));

以下错误即将出现,但是文本存在于视图中,但需要滚动页面才能手动查看文本。

android.support.test.espresso.base.DefaultFailureHandler$AssertionFailedWithCauseError:“在屏幕上显示给用户”与所选视图不匹配。预期:在屏幕上显示给用户 Got: “TextView{id=2131361941, res-name=project_details_label_tv, visibility=VISIBLE, width=249, height=41, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focus=false, is-focusable=false, is-layout-request=false, is-selected=false, root-is-layout-request=false, has-input-connection=false, x=4.0, y=24.0, text=Status, input-type=0, ime-target=false, has-links=false}”


答案 1

您可以使用 SWIPE 滚动到屏幕底部:

Espresso.onView(ViewMatchers.withId(R.id.recyclerView)).perform(ViewActions.swipeUp());

对我来说,它的工作很好。

巴勃罗


答案 2

我不知道这个布局是什么样的,但要使用

只需在断言之前执行一个:ViewActions.scrollTo()

onView(withText("Launch"))
         .perform(ViewActions.scrollTo())
         .check(ViewAssertions‌​.matches(isDisplayed()));

你需要在结构上有你的主要观点。ScrollView

如果你已经有了LinearLayout,RelativeLayout,你必须把它改成这样:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>
</LinearLayout>


推荐