画面上のテキストを検証するために以下のテストを実行しています。テキストはビューに存在しますが、テキストを手動で表示するにはページをスクロールする必要があります。
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} "
このレイアウトがどのように見えるかわかりませんが、使用するには
アサーションの前に
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>
`
SWIPEを使用して、画面の下部までスクロールできます。
Espresso.onView(ViewMatchers.withId(R.id.recyclerView)).perform(ViewActions.swipeUp());
私にとって、それはニースです。
パブロ
スクロールビューのボタンをクリックする解決策があります
onView(withId(R.id.onBottomOfScrollView)).perform(scrollTo(), click());
アサーションの前にViewActions.scrollTo()
を実行するだけです:
onView(withText("Launch")).perform(ViewActions.scrollTo()).check(ViewAssertions.matches(isDisplayed()));