Как прокрутить экран вниз в тесте espresso для андроида? Мне нужно проверить текст, присутствующий на экране

Я выполняю приведенный ниже тест, чтобы проверить текст на экране. Текст присутствует в представлении, но вам нужно прокручивать страницу, чтобы увидеть текст вручную.

 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, видимость = VISIBLE, width = 249, height = 41, has-focus = false, has-focusable = false, имеет -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 -requested = false, has-input-connection = false, x = 4.0, y = 24.0, text = Status, input-type = 0, ime-target = false, has-links = false} "

Ответы

Ответ 1

Я не знаю, как выглядит этот макет, но использовать

Просто выполните 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>

'

Ответ 3

Вы можете использовать SWIPE для прокрутки в нижней части экрана:

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

Для меня его работа хорошая.

Pablo

Ответ 4

Просто выполните ViewActions.scrollTo() перед своим утверждением:

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