Espresso: How To Scroll To The Bottom Of Scrollview
How is it possible to scroll down to the bottom of ScrollView in Espresso test? Thanks!
Solution 1:
If at the bottom of the ScrollView you need to find a view and match something against it, then simply perform the scrollTo() action on it, before any other actions that require it to be displayed.
onView(withId(R.id.onBottomOfScrollView))
.perform(scrollTo(), click());
Note: scrollTo will have no effect if the view is already displayed so you can safely use it in cases when the view is displayed
Solution 2:
for me when using nestedScrollview i just swipeUp (if you want to go down)..here is an example call:
onView(withId(R.id.nsv_container))
.perform(swipeUp());
Solution 3:
For completeness (based on Morozov's answer), you can pass a custom ViewAction instead of scrollTo(), which allows to use NestedScrollView:
ViewAction customScrollTo = newViewAction() {
@OverridepublicMatcher<View> getConstraints() {
returnallOf(withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE), isDescendantOfA(anyOf(
isAssignableFrom(ScrollView.class),
isAssignableFrom(HorizontalScrollView.class),
isAssignableFrom(NestedScrollView.class)))
);
}
@OverridepublicStringgetDescription() {
returnnull;
}
@Overridepublicvoidperform(UiController uiController, View view) {
newScrollToAction().perform(uiController, view);
}
};
And use it like this:
onView(withId(R.id.onBottomOfScrollView)).perform(customScrollTo, click());
Solution 4:
Also u can try:
public Matcher<View> getConstraints() {
return allOf(withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE), isDescendantOfA(anyOf(
isAssignableFrom(ScrollView.class), isAssignableFrom(HorizontalScrollView.class), isAssignableFrom(NestedScrollView.class))));
If you have a view inside android.support.v4.widget.NestedScrollView instead of scrollView scrollTo() does not work.
Post a Comment for "Espresso: How To Scroll To The Bottom Of Scrollview"