public final class

RepeatActionUntilViewState

extends Object
implements ViewAction
java.lang.Object
   ↳ androidx.test.espresso.action.RepeatActionUntilViewState

Class Overview

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.
[Expand]
Inherited Methods
From class java.lang.Object
From interface androidx.test.espresso.ViewAction

Protected Constructors

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

Parameters
action ViewAction
desiredStateMatcher Matcher
maxAttempts int

Public Methods

public 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.

public 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

public 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.