public final class ViewInteraction


Provides the primary interface for test authors to perform actions or asserts on views.

Each interaction is associated with a view identified by a view matcher. All view actions and asserts are performed on the UI thread (thus ensuring sequential execution). The same goes for retrieval of views (this is done to ensure that view state is "fresh" prior to execution of each operation).

Summary

Public methods

ViewInteraction
check(ViewAssertion viewAssert)

Checks the given ViewAssertion on the view selected by the current view matcher.

ViewInteraction
inRoot(Matcher<Root> rootMatcher)

Makes this ViewInteraction scoped to the root selected by the given root matcher.

ViewInteraction

Removes the need of waiting for an Activity before performing a ViewAction/ViewAssertion

ViewInteraction
perform(ViewAction[] viewActions)

Performs the given action(s) on the view selected by the current view matcher.

ViewInteraction

Replaces the default failure handler (@see Espresso.setFailureHandler) with a custom FailureHandler for this particular interaction.

Extension functions

final @NonNull Bitmap

Captures an image of the matching view into a {@link Bitmap}.

Public methods

check

public ViewInteraction check(ViewAssertion viewAssert)

Checks the given ViewAssertion on the view selected by the current view matcher.

Parameters
ViewAssertion viewAssert

the assertion to check.

Returns
ViewInteraction

this interaction for further perform/verification calls.

Throws
java.lang.RuntimeException

when being invoked on the main thread.

inRoot

public ViewInteraction inRoot(Matcher<Root> rootMatcher)

Makes this ViewInteraction scoped to the root selected by the given root matcher.

noActivity

public ViewInteraction noActivity()

Removes the need of waiting for an Activity before performing a ViewAction/ViewAssertion

perform

public ViewInteraction perform(ViewAction[] viewActions)

Performs the given action(s) on the view selected by the current view matcher. If more than one action is provided, actions are executed in the order provided with precondition checks running prior to each action.

If the test argument `--enable_testflow_gallery` is present, TestFlowVisualizer captures data for each of the interactions and generates an output artifact for the test run. NOTE, this is an experimental feature.

Parameters
ViewAction[] viewActions

one or more actions to execute.

Returns
ViewInteraction

this interaction for further perform/verification calls.

Throws
java.lang.RuntimeException

when being invoked on the main thread.

withFailureHandler

public ViewInteraction withFailureHandler(FailureHandler failureHandler)

Replaces the default failure handler (@see Espresso.setFailureHandler) with a custom FailureHandler for this particular interaction.

Parameters
FailureHandler failureHandler

a non-null FailureHandler to use to report failures.

Returns
ViewInteraction

this interaction for further perform/verification calls.

Extension functions

ViewInteractionCapture.captureToBitmap

@ExperimentalTestApi
public final @NonNull Bitmap ViewInteractionCapture.captureToBitmap(
    @NonNull ViewInteraction receiver
)

Captures an image of the matching view into a {@link Bitmap}.

For devices below {@link Build.VERSION_CODES#O} (or if the view's window cannot be determined), the image is obtained using {@link View#draw}. Otherwise, {@link PixelCopy} is used.

This method will also enable {@link HardwareRendererCompat#setDrawingEnabled(boolean)} if required.

This API is currently experimental and subject to change or removal.