Как прокрутить экран вниз в тесте 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>
'
Ответ 2
Существует решение щелкнуть кнопкой в виде прокрутки
onView(withId(R.id.onBottomOfScrollView)).perform(scrollTo(), click());
Espresso: как прокручивать нижнюю часть ScrollView
Ответ 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()));