Skip to content

Most visited

Recently visited

navigation

ViewMatchers

public final class ViewMatchers
extends Object

java.lang.Object
   ↳ android.support.test.espresso.matcher.ViewMatchers


A collection of hamcrest matchers that match Views.

Summary

Nested classes

enum ViewMatchers.Visibility

Enumerates the possible list of values for View.getVisibility(). 

Public methods

static <T> void assertThat(String message, T actual, Matcher<T> matcher)

A replacement for MatcherAssert.assertThat that renders View objects nicely.

static <T> void assertThat(T actual, Matcher<T> matcher)

A replacement for MatcherAssert.assertThat that renders View objects nicely.

static Matcher<View> hasContentDescription()

Returns an Matcher that matches Views with any content description.

static Matcher<View> hasDescendant(Matcher<View> descendantMatcher)

Returns a matcher that matches Views based on the presence of a descendant in its view hierarchy.

static Matcher<View> hasErrorText(String expectedError)

Returns a matcher that matches EditText based on edit text error string value.

static Matcher<View> hasErrorText(Matcher<String> stringMatcher)

Returns a matcher that matches EditText based on edit text error string value.

static Matcher<View> hasFocus()

Returns a matcher that matches Views currently have focus.

static Matcher<View> hasImeAction(int imeAction)

Returns a matcher that matches views that support input methods (e.g.

static Matcher<View> hasImeAction(Matcher<Integer> imeActionMatcher)

Returns a matcher that matches views that support input methods (e.g.

static Matcher<View> hasLinks()

Returns a matcher that matches TextViews that have links.

static Matcher<View> hasSibling(Matcher<View> siblingMatcher)

Returns an Matcher that matches Views based on their siblings.

static Matcher<View> isAssignableFrom(Class<? extends View> clazz)

Returns a matcher that matches Views which are an instance of or subclass of the provided class.

static Matcher<View> isChecked()

Returns a matcher that accepts if and only if the view is a CompoundButton (or subtype of) and is in checked state.

static Matcher<View> isClickable()

Returns a matcher that matches Views that are clickable.

static Matcher<View> isCompletelyDisplayed()

Returns a matcher which only accepts a view whose height and width fit perfectly within the currently displayed region of this view.

static Matcher<View> isDescendantOfA(Matcher<View> ancestorMatcher)

Returns a matcher that matches Views based on the given ancestor type.

static Matcher<View> isDisplayed()

Returns a matcher that matches Views that are currently displayed on the screen to the user.

static Matcher<View> isDisplayingAtLeast(int areaPercentage)

Returns a matcher which accepts a view so long as a given percentage of that view's area is not obscured by any other view and is thus visible to the user.

static Matcher<View> isEnabled()

Returns a matcher that matches Views that are enabled.

static Matcher<View> isFocusable()

Returns a matcher that matches Views that are focusable.

static Matcher<View> isJavascriptEnabled()

Returns a matcher that matches WebView if they are evaluating Javascript.

static Matcher<View> isNotChecked()

Returns a matcher that accepts if and only if the view is a CompoundButton (or subtype of) and is not in checked state.

static Matcher<View> isRoot()

Returns a matcher that matches root View.

static Matcher<View> isSelected()

Returns a matcher that matches Views that are selected.

static Matcher<View> supportsInputMethods()

Returns a matcher that matches views that support input methods.

static Matcher<View> withChild(Matcher<View> childMatcher)

A matcher that returns true if and only if the view's child is accepted by the provided matcher.

static Matcher<View> withClassName(Matcher<String> classNameMatcher)

Returns a matcher that matches Views with class name matching the given matcher.

static Matcher<View> withContentDescription(int resourceId)

Returns a Matcher that matches Views based on content description property value.

static Matcher<View> withContentDescription(String text)

Returns an Matcher that matches Views based on content description property value.

static Matcher<View> withContentDescription(Matcher<? extends CharSequence> charSequenceMatcher)

Returns an Matcher that matches Views based on content description property value.

static Matcher<View> withEffectiveVisibility(ViewMatchers.Visibility visibility)

Returns a matcher that matches Views that have "effective" visibility set to the given value.

static Matcher<View> withHint(Matcher<String> stringMatcher)

Returns a matcher that matches TextViews based on hint property value.

static Matcher<View> withHint(int resourceId)

Returns a matcher that matches a descendant of TextView that is displaying the hint associated with the given resource id.

static Matcher<View> withHint(String hintText)

Returns a matcher that matches TextView based on it's hint property value.

static Matcher<View> withId(Matcher<Integer> integerMatcher)

Returns a matcher that matches Views based on resource ids.

static Matcher<View> withId(int id)

Same as withId(is(int)), but attempts to look up resource name of the given id and use an R.id.myView style description with describeTo.

static Matcher<View> withInputType(int inputType)

Returns a matcher that matches InputType.

static Matcher<View> withParent(Matcher<View> parentMatcher)

A matcher that accepts a view if and only if the view's parent is accepted by the provided matcher.

static Matcher<View> withResourceName(String name)

Returns a matcher that matches Views based on resource id names, (for instance, channel_avatar).

static Matcher<View> withResourceName(Matcher<String> stringMatcher)

Returns a matcher that matches Views based on resource id names, (for instance, channel_avatar).

static Matcher<View> withSpinnerText(int resourceId)

Returns a matcher that matches a descendant of Spinner that is displaying the string of the selected item associated with the given resource id.

static Matcher<View> withSpinnerText(String text)

Returns a matcher that matches Spinner based on it's selected item's toString value.

static Matcher<View> withSpinnerText(Matcher<String> stringMatcher)

Returns a matcher that matches Spinners based on toString value of the selected item.

static Matcher<View> withTagKey(int key)

Returns a matcher that matches View based on tag keys.

static Matcher<View> withTagKey(int key, Matcher<Object> objectMatcher)

Returns a matcher that matches Views based on tag keys.

static Matcher<View> withTagValue(Matcher<Object> tagValueMatcher)

Returns a matcher that matches Views based on tag property values.

static Matcher<View> withText(Matcher<String> stringMatcher)

Returns a matcher that matches TextViews based on text property value.

static Matcher<View> withText(String text)

Returns a matcher that matches TextView based on its text property value.

static Matcher<View> withText(int resourceId)

Returns a matcher that matches a descendant of TextView that is displaying the string associated with the given resource id.

Inherited methods

From class java.lang.Object

Public methods

assertThat

void assertThat (String message, 
                T actual, 
                Matcher<T> matcher)

A replacement for MatcherAssert.assertThat that renders View objects nicely.

Parameters
message String: the message to display.
actual T: the actual value.
matcher Matcher: a matcher that accepts or rejects actual.

assertThat

void assertThat (T actual, 
                Matcher<T> matcher)

A replacement for MatcherAssert.assertThat that renders View objects nicely.

Parameters
actual T: the actual value.
matcher Matcher: a matcher that accepts or rejects actual.

hasContentDescription

Matcher<View> hasContentDescription ()

Returns an Matcher that matches Views with any content description.

Returns
Matcher<View>

hasDescendant

Matcher<View> hasDescendant (Matcher<View> descendantMatcher)

Returns a matcher that matches Views based on the presence of a descendant in its view hierarchy.

Parameters
descendantMatcher Matcher: the type of the descendant to match on
Returns
Matcher<View>

hasErrorText

Matcher<View> hasErrorText (String expectedError)

Returns a matcher that matches EditText based on edit text error string value.

Note: Sugar for hasErrorText(is("string")).

Parameters
expectedError String
Returns
Matcher<View>

hasErrorText

Matcher<View> hasErrorText (Matcher<String> stringMatcher)

Returns a matcher that matches EditText based on edit text error string value.

Parameters
stringMatcher Matcher
Returns
Matcher<View>

hasFocus

Matcher<View> hasFocus ()

Returns a matcher that matches Views currently have focus.

Returns
Matcher<View>

hasImeAction

Matcher<View> hasImeAction (int imeAction)

Returns a matcher that matches views that support input methods (e.g. EditText) and have the specified IME action set in its EditorInfo.

Parameters
imeAction int: the IME action to match
Returns
Matcher<View>

hasImeAction

Matcher<View> hasImeAction (Matcher<Integer> imeActionMatcher)

Returns a matcher that matches views that support input methods (e.g. EditText) and have the specified IME action set in its EditorInfo.

Parameters
imeActionMatcher Matcher: a matcher for the IME action
Returns
Matcher<View>

hasLinks

Matcher<View> hasLinks ()

Returns a matcher that matches TextViews that have links.

Returns
Matcher<View>

hasSibling

Matcher<View> hasSibling (Matcher<View> siblingMatcher)

Returns an Matcher that matches Views based on their siblings.

This may be particularly useful when a view cannot be uniquely selected on properties such as text or R.id. For example: a call button is repeated several times in a contacts layout and the only way to differentiate the call button view is by what appears next to it (e.g. the unique name of the contact).

Parameters
siblingMatcher Matcher: a Matcher for the sibling of the view.
Returns
Matcher<View>

isAssignableFrom

Matcher<View> isAssignableFrom (Class<? extends View> clazz)

Returns a matcher that matches Views which are an instance of or subclass of the provided class. Some versions of Hamcrest make the generic typing of this a nightmare, so we have a special case for our users.

Parameters
clazz Class
Returns
Matcher<View>

isChecked

Matcher<View> isChecked ()

Returns a matcher that accepts if and only if the view is a CompoundButton (or subtype of) and is in checked state.

Returns
Matcher<View>

isClickable

Matcher<View> isClickable ()

Returns a matcher that matches Views that are clickable.

Returns
Matcher<View>

isCompletelyDisplayed

Matcher<View> isCompletelyDisplayed ()

Returns a matcher which only accepts a view whose height and width fit perfectly within the currently displayed region of this view. There exist views (such as ScrollViews) whose height and width are larger then the physical device screen by design. Such views will _never_ be completely displayed.

Returns
Matcher<View>

isDescendantOfA

Matcher<View> isDescendantOfA (Matcher<View> ancestorMatcher)

Returns a matcher that matches Views based on the given ancestor type.

Parameters
ancestorMatcher Matcher: the type of the ancestor to match on
Returns
Matcher<View>

isDisplayed

Matcher<View> isDisplayed ()

Returns a matcher that matches Views that are currently displayed on the screen to the user. Note: isDisplayed will select views that are partially displayed (eg: the full height/width of the view is greater then the height/width of the visible rectangle). If you wish to ensure the entire rectangle this view draws is displayed to the user use isCompletelyDisplayed.

Returns
Matcher<View>

isDisplayingAtLeast

Matcher<View> isDisplayingAtLeast (int areaPercentage)

Returns a matcher which accepts a view so long as a given percentage of that view's area is not obscured by any other view and is thus visible to the user.

Parameters
areaPercentage int: an integer ranging from (0, 100] indicating how much percent of the surface area of the view must be shown to the user to be accepted.
Returns
Matcher<View>

isEnabled

Matcher<View> isEnabled ()

Returns a matcher that matches Views that are enabled.

Returns
Matcher<View>

isFocusable

Matcher<View> isFocusable ()

Returns a matcher that matches Views that are focusable.

Returns
Matcher<View>

isJavascriptEnabled

Matcher<View> isJavascriptEnabled ()

Returns a matcher that matches WebView if they are evaluating Javascript.

Returns
Matcher<View>

isNotChecked

Matcher<View> isNotChecked ()

Returns a matcher that accepts if and only if the view is a CompoundButton (or subtype of) and is not in checked state.

Returns
Matcher<View>

isRoot

Matcher<View> isRoot ()

Returns a matcher that matches root View.

Returns
Matcher<View>

isSelected

Matcher<View> isSelected ()

Returns a matcher that matches Views that are selected.

Returns
Matcher<View>

supportsInputMethods

Matcher<View> supportsInputMethods ()

Returns a matcher that matches views that support input methods.

Returns
Matcher<View>

withChild

Matcher<View> withChild (Matcher<View> childMatcher)

A matcher that returns true if and only if the view's child is accepted by the provided matcher.

Parameters
childMatcher Matcher: the matcher to apply on the child views.
Returns
Matcher<View>

withClassName

Matcher<View> withClassName (Matcher<String> classNameMatcher)

Returns a matcher that matches Views with class name matching the given matcher.

Parameters
classNameMatcher Matcher
Returns
Matcher<View>

withContentDescription

Matcher<View> withContentDescription (int resourceId)

Returns a Matcher that matches Views based on content description property value.

Parameters
resourceId int: the resource id of the content description to match on.
Returns
Matcher<View>

withContentDescription

Matcher<View> withContentDescription (String text)

Returns an Matcher that matches Views based on content description property value. Sugar for withContentDescription(is("string")).

Parameters
text String: the text to match on.
Returns
Matcher<View>

withContentDescription

Matcher<View> withContentDescription (Matcher<? extends CharSequence> charSequenceMatcher)

Returns an Matcher that matches Views based on content description property value.

Parameters
charSequenceMatcher Matcher: a CharSequence Matcher for the content description
Returns
Matcher<View>

withEffectiveVisibility

Matcher<View> withEffectiveVisibility (ViewMatchers.Visibility visibility)

Returns a matcher that matches Views that have "effective" visibility set to the given value. Effective visibility takes into account not only the view's visibility value, but also that of its ancestors. In case of View.VISIBLE, this means that the view and all of its ancestors have visibility=VISIBLE. In case of GONE and INVISIBLE, it's the opposite - any GONE or INVISIBLE parent will make all of its children have their effective visibility.

Note: Contrary to what the name may imply, view visibility does not directly translate into whether the view is displayed on screen (use isDisplayed() for that). For example, the view and all of its ancestors can have visibility=VISIBLE, but the view may need to be scrolled to in order to be actually visible to the user. Unless you're specifically targeting the visibility value with your test, use isDisplayed.

Parameters
visibility ViewMatchers.Visibility
Returns
Matcher<View>

withHint

Matcher<View> withHint (Matcher<String> stringMatcher)

Returns a matcher that matches TextViews based on hint property value. Note: View's hint property can be null.

Parameters
stringMatcher Matcher: Matcher of String with text to match
Returns
Matcher<View>

withHint

Matcher<View> withHint (int resourceId)

Returns a matcher that matches a descendant of TextView that is displaying the hint associated with the given resource id.

Parameters
resourceId int: the string resource the text view is expected to have as a hint.
Returns
Matcher<View>

withHint

Matcher<View> withHint (String hintText)

Returns a matcher that matches TextView based on it's hint property value. Note: View's Sugar for withHint(is("string")).

Parameters
hintText String: String with the hint text to match
Returns
Matcher<View>

withId

Matcher<View> withId (Matcher<Integer> integerMatcher)

Returns a matcher that matches Views based on resource ids. Note: Android resource ids are not guaranteed to be unique. You may have to pair this matcher with another one to guarantee a unique view selection.

Parameters
integerMatcher Matcher: a Matcher for resource ids
Returns
Matcher<View>

withId

Matcher<View> withId (int id)

Same as withId(is(int)), but attempts to look up resource name of the given id and use an R.id.myView style description with describeTo. If resource lookup is unavailable, at the time describeTo is invoked, this will print out a simple "with id: %d". If resource lookup is available, but looking up the name for the given id, fails, "with id: %d (resource name not found)" will be returned as the description.

Parameters
id int: the resource id.
Returns
Matcher<View>

withInputType

Matcher<View> withInputType (int inputType)

Returns a matcher that matches InputType.

Parameters
inputType int
Returns
Matcher<View>

withParent

Matcher<View> withParent (Matcher<View> parentMatcher)

A matcher that accepts a view if and only if the view's parent is accepted by the provided matcher.

Parameters
parentMatcher Matcher: the matcher to apply on getParent.
Returns
Matcher<View>

withResourceName

Matcher<View> withResourceName (String name)

Returns a matcher that matches Views based on resource id names, (for instance, channel_avatar).

Parameters
name String: the resource id name
Returns
Matcher<View>

withResourceName

Matcher<View> withResourceName (Matcher<String> stringMatcher)

Returns a matcher that matches Views based on resource id names, (for instance, channel_avatar).

Parameters
stringMatcher Matcher: a Matcher for resource id names
Returns
Matcher<View>

withSpinnerText

Matcher<View> withSpinnerText (int resourceId)

Returns a matcher that matches a descendant of Spinner that is displaying the string of the selected item associated with the given resource id.

Parameters
resourceId int: the string resource the text view is expected to hold.
Returns
Matcher<View>

withSpinnerText

Matcher<View> withSpinnerText (String text)

Returns a matcher that matches Spinner based on it's selected item's toString value.

Note: Sugar for withSpinnerText(is("string")).

Parameters
text String
Returns
Matcher<View>

withSpinnerText

Matcher<View> withSpinnerText (Matcher<String> stringMatcher)

Returns a matcher that matches Spinners based on toString value of the selected item.

Parameters
stringMatcher Matcher: Matcher of String with text to match.
Returns
Matcher<View>

withTagKey

Matcher<View> withTagKey (int key)

Returns a matcher that matches View based on tag keys.

Parameters
key int: to match
Returns
Matcher<View>

withTagKey

Matcher<View> withTagKey (int key, 
                Matcher<Object> objectMatcher)

Returns a matcher that matches Views based on tag keys.

Parameters
key int: to match
objectMatcher Matcher: Object to match
Returns
Matcher<View>

withTagValue

Matcher<View> withTagValue (Matcher<Object> tagValueMatcher)

Returns a matcher that matches Views based on tag property values.

Parameters
tagValueMatcher Matcher: a Matcher for the view's tag property value
Returns
Matcher<View>

withText

Matcher<View> withText (Matcher<String> stringMatcher)

Returns a matcher that matches TextViews based on text property value. Note: View's text property is never null. If you setText(null) it will still be "". Do not use null matcher.

Parameters
stringMatcher Matcher: Matcher of String with text to match
Returns
Matcher<View>

withText

Matcher<View> withText (String text)

Returns a matcher that matches TextView based on its text property value. Note: View's Sugar for withText(is("string")).

Parameters
text String: String with the text to match
Returns
Matcher<View>

withText

Matcher<View> withText (int resourceId)

Returns a matcher that matches a descendant of TextView that is displaying the string associated with the given resource id.

Parameters
resourceId int: the string resource the text view is expected to hold.
Returns
Matcher<View>
This site uses cookies to store your preferences for site-specific language and display options.

Get the latest Android developer news and tips that will help you find success on Google Play.

* Required Fields

Hooray!

Browse this site in ?

You requested a page in , but your language preference for this site is .

Would you like to change your language preference and browse this site in ? If you want to change your language preference later, use the language menu at the bottom of each page.

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.

Take a one-minute survey?
Help us improve Android tools and documentation.