RepeatActionUntilViewState

public final class RepeatActionUntilViewState
extends Object implements ViewAction

java.lang.Object
   ↳ androidx.test.espresso.action.RepeatActionUntilViewState


Enables performing a given action on a view until it reaches desired state matched by given View matcher. This action is useful in the scenarios where performing the action repeatedly on a view changes its state at runtime. For example, if there is a ViewFlipper on which user can swipe through the views and it automatically flips between each child at a regular interval, it is not always certain which of the child is displayed at a given point of time. In this case, in order to perform click on child no. 4 (assuming child no. 4 contains a text "Child 4"), repeat action can be used as follows:

int maxAttempts=10;
 onView(withId(R.id.my_pager))
            .perform(repeatedlyUntil(swipeUp(), hasDescendant(withText("Child 4")), maxAttempts),
            click());
 

Summary

Protected constructors

RepeatActionUntilViewState(ViewAction action, Matcher<View> desiredStateMatcher, int maxAttempts)

Public methods

Matcher<View> getConstraints()

A mechanism for ViewActions to specify what type of views they can operate on.

String getDescription()

Returns a description of the view action.

void perform(UiController uiController, View view)

Performs this action on the given view.

Inherited methods

From class java.lang.Object
From interface androidx.test.espresso.ViewAction

Protected constructors

RepeatActionUntilViewState

RepeatActionUntilViewState (ViewAction action, 
                Matcher<View> desiredStateMatcher, 
                int maxAttempts)

Parameters
action ViewAction

desiredStateMatcher Matcher

maxAttempts int

Public methods

getConstraints

Matcher<View> getConstraints ()

A mechanism for ViewActions to specify what type of views they can operate on.

A ViewAction can demand that the view passed to perform meets certain constraints. For example it may want to ensure the view is already in the viewable physical screen of the device or is of a certain type.

Returns
Matcher<View> a Matcher that will be tested prior to calling perform.

getDescription

String getDescription ()

Returns a description of the view action. The description should not be overly long and should fit nicely in a sentence like: "performing %description% action on view with id ..."

Returns
String

perform

void perform (UiController uiController, 
                View view)

Performs this action on the given view.

Parameters
uiController UiController: the controller to use to interact with the UI.

view View: the view to act upon. never null.