ViewMatchers
public final class ViewMatchers
extends Object
java.lang.Object | |
↳ | android.support.test.espresso.matcher.ViewMatchers |
A collection of hamcrest matchers that match View
s.
Summary
Nested classes | |
---|---|
enum | ViewMatchers.Visibility Enumerates the possible list of values for |
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> | hasBackground(int drawableId) Returns a matcher that matches |
static Matcher<View> | hasChildCount(int childCount) Matches a |
static Matcher<View> | hasContentDescription() Returns an |
static Matcher<View> | hasDescendant(Matcher<View> descendantMatcher) Returns a matcher that matches |
static Matcher<View> | hasErrorText(String expectedError) Returns a matcher that matches |
static Matcher<View> | hasErrorText(Matcher<String> stringMatcher) Returns a matcher that matches |
static Matcher<View> | hasFocus() Returns a matcher that matches |
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 |
static Matcher<View> | hasMinimumChildCount(int minChildCount) Matches a |
static Matcher<View> | hasSibling(Matcher<View> siblingMatcher) Returns an |
static Matcher<View> | hasTextColor(int colorResId) Returns a matcher that matches |
static Matcher<View> | isAssignableFrom(Class<? extends View> clazz) Matches |
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 |
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 |
static Matcher<View> | isDisplayed() Returns a matcher that matches |
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 parent view and is thus visible to the user. |
static Matcher<View> | isEnabled() Returns a matcher that matches |
static Matcher<View> | isFocusable() Returns a matcher that matches |
static Matcher<View> | isJavascriptEnabled() Returns a matcher that matches |
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 |
static Matcher<View> | isSelected() Returns a matcher that matches |
static Matcher<View> | supportsInputMethods() Returns a matcher that matches views that support input methods. |
static Matcher<View> | withAlpha(float alpha) Matches |
static Matcher<View> | withChild(Matcher<View> childMatcher) Returns |
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 |
static Matcher<View> | withContentDescription(String text) Returns an |
static Matcher<View> | withContentDescription(Matcher<? extends CharSequence> charSequenceMatcher) Returns an |
static Matcher<View> | withEffectiveVisibility(ViewMatchers.Visibility visibility) Returns a matcher that matches |
static Matcher<View> | withHint(Matcher<String> stringMatcher) Returns a matcher that matches |
static Matcher<View> | withHint(int resourceId) Returns a matcher that matches a descendant of |
static Matcher<View> | withHint(String hintText) Returns a matcher that matches |
static Matcher<View> | withId(Matcher<Integer> integerMatcher) Returns a matcher that matches |
static Matcher<View> | withId(int id) A matcher that matches |
static Matcher<View> | withInputType(int inputType) Returns a matcher that matches |
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> | withParentIndex(int index) Returns a matcher that matches the child index inside the |
static Matcher<View> | withResourceName(String name) Returns a matcher that matches |
static Matcher<View> | withResourceName(Matcher<String> stringMatcher) Returns a matcher that matches |
static Matcher<View> | withSpinnerText(int resourceId) Returns a matcher that matches a descendant of |
static Matcher<View> | withSpinnerText(String text) Returns a matcher that matches |
static Matcher<View> | withSpinnerText(Matcher<String> stringMatcher) Returns a matcher that matches |
static Matcher<View> | withSubstring(String substring) Returns a matcher that matches |
static Matcher<View> | withTagKey(int key) Returns a matcher that matches |
static Matcher<View> | withTagKey(int key, Matcher<Object> objectMatcher) Returns a matcher that matches |
static Matcher<View> | withTagValue(Matcher<Object> tagValueMatcher) Returns a matcher that matches |
static Matcher<View> | withText(Matcher<String> stringMatcher) Returns a matcher that matches |
static Matcher<View> | withText(String text) Returns a matcher that matches |
static Matcher<View> | withText(int resourceId) Returns a matcher that matches a descendant of |
Inherited methods | |
---|---|
![]() 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. |
hasBackground
Matcher<View> hasBackground (int drawableId)
Returns a matcher that matches View
based on background resource.
Note: This method compares images at a pixel level and might have significant performance implications for larger bitmaps.
This API is currently in beta.
Parameters | |
---|---|
drawableId | int |
Returns | |
---|---|
Matcher<View> |
hasChildCount
Matcher<View> hasChildCount (int childCount)
Matches a ViewGroup
if it has exactly the specified number of children.
Parameters | |
---|---|
childCount | int |
Returns | |
---|---|
Matcher<View> |
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.
Note: View's error property can be null
, to match against it use hasErrorText(nullValue(String.class)
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> |
hasMinimumChildCount
Matcher<View> hasMinimumChildCount (int minChildCount)
Matches a ViewGroup
if it has at least the specified number of children.
Parameters | |
---|---|
minChildCount | int |
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> |
hasTextColor
Matcher<View> hasTextColor (int colorResId)
Returns a matcher that matches TextView
based on it's color.
This API is currently in beta.
Parameters | |
---|---|
colorResId | int |
Returns | |
---|---|
Matcher<View> |
isAssignableFrom
Matcher<View> isAssignableFrom (Class<? extends View> clazz)
Matches Views
based on instance 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 than 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 parent 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> |
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> |
withAlpha
Matcher<View> withAlpha (float alpha)
Matches Views
with the specified alpha value.
Parameters | |
---|---|
alpha | float |
Returns | |
---|---|
Matcher<View> |
withChild
Matcher<View> withChild (Matcher<View> childMatcher)
Returns true
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 ERROR(/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 TextView
s based on hint property value.
Note: View's hint property can be null
, to match against it use withHint(nullValue(String.class)
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 View
s 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)
A matcher that matches View
s based on its resource id.
Same as withId(is(int))
but attempts to look up resource name of the given id and use a 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 the lookup for a given id fails, "with id: %d (resource name not found)" will be returned as the description.
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 | |
---|---|
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> |
withParentIndex
Matcher<View> withParentIndex (int index)
Returns a matcher that matches the child index inside the ViewParent
.
Parameters | |
---|---|
index | int |
Returns | |
---|---|
Matcher<View> |
withResourceName
Matcher<View> withResourceName (String name)
Returns a matcher that matches View
s 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 View
s 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 resource id of 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 Spinner's
based on toString
value of the selected item.
Parameters | |
---|---|
stringMatcher | Matcher : Matcher of String with text to match. |
Returns | |
---|---|
Matcher<View> |
withSubstring
Matcher<View> withSubstring (String substring)
Returns a matcher that matches TextView
that contains the specific substring.
Note: View's sugar for withText(containsString("string"))
.
Parameters | |
---|---|
substring | String : String that is expected to be contained |
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 View
s 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 TextView
s based on text property value.
Note: A View text property is never null
. If you call setText(CharSequence)
with a null
value it will still be "" (empty string). Do not use a 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> |
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-02-10 UTC.