web-dev-qa-db-ja.com

Android espressoテストで画面を下にスクロールする方法は?画面に表示されているテキストを検証する必要があります

画面上のテキストを検証するために以下のテストを実行しています。テキストはビューに存在しますが、テキストを手動で表示するにはページをスクロールする必要があります。

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

次のエラーが発生します。ただし、テキストはビューに表示されますが、テキストを手動で表示するにはページをスクロールする必要があります。

Android.support.test.espresso.base.DefaultFailureHandler $ AssertionFailedWithCauseError:「ユーザーに画面に表示されます」が選択したビューと一致しません。期待:画面はユーザーに表示されます-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 = 4.0、y = 24.0、text = Status、input-type = 0、ime-target = false、has-links = false} "

15
HillHacker

このレイアウトがどのように見えるかわかりませんが、使用するには

アサーションの前に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>

`

16
piotrek1543

SWIPEを使用して、画面の下部までスクロールできます。

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

私にとって、それはニースです。

パブロ

7
Pablo

スクロールビューのボタンをクリックする解決策があります

onView(withId(R.id.onBottomOfScrollView)).perform(scrollTo(), click());

エスプレッソ:ScrollViewの一番下までスクロールする方法

アサーションの前にViewActions.scrollTo()を実行するだけです:

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