# UiObject

Artifact: [androidx.test.uiautomator:uiautomator](https://developer.android.com/jetpack/androidx/releases/test-uiautomator) [View Source](https://cs.android.com/search?q=file:androidx/test/uiautomator/UiObject.java+class:androidx.test.uiautomator.UiObject) Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/test-uiautomator#2.2.0)

*** ** * ** ***


```
class UiObject
```

<br />

Known direct subclasses [UiCollection](https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiCollection)

|---|---|
| `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiCollection` | Used to enumerate a container's UI elements for the purpose of counting, or targeting a sub elements by a child's text or description. |

Known indirect subclasses [UiScrollable](https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiScrollable)

|---|---|
| `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiScrollable` | UiScrollable is a `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiCollection` and provides support for searching for items in scrollable layout elements. |

*** ** * ** ***

A UiObject is a representation of a view. It is not in any way directly bound to a view as an object reference. A UiObject contains information to help it locate a matching view at runtime based on the `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiSelector` properties specified in its constructor. Once you create an instance of a UiObject, it can be reused for different views that match the selector criteria.

## Summary

| ### Constants |
|---|---|
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject#FINGER_TOUCH_HALF_WIDTH() = 20` |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject#SWIPE_MARGIN_LIMIT() = 5` |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject#WAIT_FOR_EVENT_TMEOUT() = 3000` **This property is deprecated.** use `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/Configurator#setScrollAcknowledgmentTimeout(long)` <br /> |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject#WAIT_FOR_SELECTOR_POLL() = 1000` |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject#WAIT_FOR_SELECTOR_TIMEOUT() = 10000` **This property is deprecated.** use `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/Configurator#setWaitForSelectorTimeout(long)` <br /> |
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject#WAIT_FOR_WINDOW_TMEOUT() = 5500` |

| ### Public constructors |
|---|
| `[UiObject](https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject#UiObject(androidx.test.uiautomator.UiSelector))(selector: https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiSelector!)` **This function is deprecated.** Use `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiDevice#findObject(androidx.test.uiautomator.UiSelector)` instead. <br /> |

| ### Public functions |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject#clearTextField()()` Clears the existing text contents in an editable field. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject#click()()` Performs a click at the center of the visible bounds of the UI element represented by this UiObject. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject#clickAndWaitForNewWindow()()` Waits for window transitions that would typically take longer than the usual default timeouts. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject#clickAndWaitForNewWindow(long)(timeout: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)` Performs a click at the center of the visible bounds of the UI element represented by this UiObject and waits for window transitions. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject#clickBottomRight()()` Clicks the bottom and right corner of the UI element |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject#clickTopLeft()()` Clicks the top and left corner of the UI element |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject#dragTo(androidx.test.uiautomator.UiObject,int)(destObj: https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject, steps: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Drags this object to a destination UiObject. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject#dragTo(int,int,int)(destX: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, destY: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, steps: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Drags this object to arbitrary coordinates. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject#exists()()` Check if view exists. |
| `https://developer.android.com/reference/android/graphics/Rect.html` | `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject#getBounds()()` Returns the view's `bounds` property. |
| `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject` | `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject#getChild(androidx.test.uiautomator.UiSelector)(selector: https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiSelector)` Creates a new UiObject for a child view that is under the present UiObject. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject#getChildCount()()` Counts the child views immediately under the present UiObject. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject#getClassName()()` Retrieves the `className` property of the UI element. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject#getContentDescription()()` Reads the `content_desc` property of the UI element |
| `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject` | `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject#getFromParent(androidx.test.uiautomator.UiSelector)(selector: https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiSelector)` Creates a new UiObject for a sibling view or a child of the sibling view, relative to the present UiObject. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject#getPackageName()()` Reads the view's `package` property |
| `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiSelector` | `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject#getSelector()()` Debugging helper. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject#getText()()` Reads the `text` property of the UI element |
| `https://developer.android.com/reference/android/graphics/Rect.html` | `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject#getVisibleBounds()()` Returns the visible bounds of the view. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject#isCheckable()()` Checks if the UI element's `checkable` property is currently true. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject#isChecked()()` Check if the UI element's `checked` property is currently true |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject#isClickable()()` Checks if the UI element's `clickable` property is currently true. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject#isEnabled()()` Checks if the UI element's `enabled` property is currently true. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject#isFocusable()()` Check if the UI element's `focusable` property is currently true. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject#isFocused()()` Check if the UI element's `focused` property is currently true |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject#isLongClickable()()` Check if the view's `long-clickable` property is currently true |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject#isScrollable()()` Check if the view's `scrollable` property is currently true |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject#isSelected()()` Checks if the UI element's `selected` property is currently true. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject#longClick()()` Long clicks the center of the visible bounds of the UI element |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject#longClickBottomRight()()` Long clicks bottom and right corner of the UI element |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject#longClickTopLeft()()` Long clicks on the top and left corner of the UI element |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject#performMultiPointerGesture(android.view.MotionEvent.PointerCoords[]...)( touches: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://developer.android.com/reference/android/view/MotionEvent.PointerCoords.html!>!> )` Performs a multi-touch gesture. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject#performTwoPointerGesture(android.graphics.Point,android.graphics.Point,android.graphics.Point,android.graphics.Point,int)( startPoint1: https://developer.android.com/reference/android/graphics/Point.html, startPoint2: https://developer.android.com/reference/android/graphics/Point.html, endPoint1: https://developer.android.com/reference/android/graphics/Point.html, endPoint2: https://developer.android.com/reference/android/graphics/Point.html, steps: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html )` Generates a two-pointer gesture with arbitrary starting and ending points. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject#pinchIn(int,int)(percent: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, steps: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Performs a two-pointer gesture, where each pointer moves diagonally toward the other, from the edges to the center of this UiObject . |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject#pinchOut(int,int)(percent: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, steps: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Performs a two-pointer gesture, where each pointer moves diagonally opposite across the other, from the center out towards the edges of the this UiObject. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject#setText(java.lang.String)(text: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html?)` Sets the text in an editable field, after clearing the field's content. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject#swipeDown(int)(steps: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Performs the swipe down action on the UiObject. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject#swipeLeft(int)(steps: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Performs the swipe left action on the UiObject. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject#swipeRight(int)(steps: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Performs the swipe right action on the UiObject. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject#swipeUp(int)(steps: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Performs the swipe up action on the UiObject. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject#waitForExists(long)(timeout: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)` Waits a specified length of time for a view to become visible. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject#waitUntilGone(long)(timeout: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)` Waits a specified length of time for a view to become undetectable. |

| ### Protected functions |
|---|---|
| `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.html?` | `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject#findAccessibilityNodeInfo(long)(timeout: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)` Finds a matching UI element in the accessibility hierarchy, by using the selector for this UiObject. |

## Constants

### FINGER_TOUCH_HALF_WIDTH

Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/test-uiautomator#2.2.0)

```
protected const val FINGER_TOUCH_HALF_WIDTH = 20: Int
```

### SWIPE_MARGIN_LIMIT

Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/test-uiautomator#2.2.0)

```
protected const val SWIPE_MARGIN_LIMIT = 5: Int
```

### WAIT_FOR_EVENT_TMEOUT

Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/test-uiautomator#2.2.0) Deprecated in [2.2.0](https://developer.android.com/jetpack/androidx/releases/test-uiautomator#2.2.0)

```
protected const val WAIT_FOR_EVENT_TMEOUT = 3000: Long
```

> [!CAUTION]
> **This property is deprecated.**   
>
> use `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/Configurator#setScrollAcknowledgmentTimeout(long)`

### WAIT_FOR_SELECTOR_POLL

Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/test-uiautomator#2.2.0)

```
protected const val WAIT_FOR_SELECTOR_POLL = 1000: Long
```

### WAIT_FOR_SELECTOR_TIMEOUT

Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/test-uiautomator#2.2.0) Deprecated in [2.2.0](https://developer.android.com/jetpack/androidx/releases/test-uiautomator#2.2.0)

```
protected const val WAIT_FOR_SELECTOR_TIMEOUT = 10000: Long
```

> [!CAUTION]
> **This property is deprecated.**   
>
> use `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/Configurator#setWaitForSelectorTimeout(long)`

### WAIT_FOR_WINDOW_TMEOUT

Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/test-uiautomator#2.2.0)

```
protected const val WAIT_FOR_WINDOW_TMEOUT = 5500: Long
```

## Public constructors

### UiObject

Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/test-uiautomator#2.2.0) Deprecated in [2.2.0](https://developer.android.com/jetpack/androidx/releases/test-uiautomator#2.2.0)

```
[UiObject](https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject#UiObject(androidx.test.uiautomator.UiSelector))(selector: UiSelector!)
```

> [!CAUTION]
> **This function is deprecated.**   
>
> Use `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiDevice#findObject(androidx.test.uiautomator.UiSelector)` instead. This version hides UiObject's dependency on UiDevice and is prone to misuse.

Constructs a UiObject to represent a view that matches the specified selector criteria.

| Parameters |
|---|---|
| `selector: https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiSelector!` |   |

## Public functions

### clearTextField

Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/test-uiautomator#2.2.0)

```
fun clearTextField(): Unit
```

Clears the existing text contents in an editable field. The `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiSelector` of this object must reference a UI element that is editable. When you call this method, the method sets focus on the editable field, selects all of its existing content, and clears it by sending a DELETE key press

| Throws |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObjectNotFoundException` |   |

### click

Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/test-uiautomator#2.2.0)

```
fun click(): Boolean
```

Performs a click at the center of the visible bounds of the UI element represented by this UiObject.

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | true id successful else false |

| Throws |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObjectNotFoundException` |   |

### clickAndWaitForNewWindow

Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/test-uiautomator#2.2.0)

```
fun clickAndWaitForNewWindow(): Boolean
```

Waits for window transitions that would typically take longer than the usual default timeouts. See `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject#clickAndWaitForNewWindow(long)`

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | true if the event was triggered, else false |

| Throws |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObjectNotFoundException` |   |

### clickAndWaitForNewWindow

Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/test-uiautomator#2.2.0)

```
fun clickAndWaitForNewWindow(timeout: Long): Boolean
```

Performs a click at the center of the visible bounds of the UI element represented by this UiObject and waits for window transitions. This method differ from `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject#click()` only in that this method waits for a a new window transition as a result of the click. Some examples of a window transition:

- launching a new activity
- bringing up a pop-up menu
- bringing up a dialog

| Parameters |
|---|---|
| `timeout: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | timeout before giving up on waiting for a new window |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | true if the event was triggered, else false |

| Throws |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObjectNotFoundException` |   |

### clickBottomRight

Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/test-uiautomator#2.2.0)

```
fun clickBottomRight(): Boolean
```

Clicks the bottom and right corner of the UI element

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | true on success |

| Throws |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObjectNotFoundException` |   |

### clickTopLeft

Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/test-uiautomator#2.2.0)

```
fun clickTopLeft(): Boolean
```

Clicks the top and left corner of the UI element

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | true on success |

| Throws |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObjectNotFoundException` |   |

### dragTo

Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/test-uiautomator#2.2.0)

```
fun dragTo(destObj: UiObject, steps: Int): Boolean
```

Drags this object to a destination UiObject. The number of steps specified in your input parameter can influence the drag speed, and varying speeds may impact the results. Consider evaluating different speeds when using this method in your tests.

| Parameters |
|---|---|
| `destObj: https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject` | the destination UiObject. |
| `steps: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | usually 40 steps. You can increase or decrease the steps to change the speed. |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | true if successful |

| Throws |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObjectNotFoundException` |   |

### dragTo

Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/test-uiautomator#2.2.0)

```
fun dragTo(destX: Int, destY: Int, steps: Int): Boolean
```

Drags this object to arbitrary coordinates. The number of steps specified in your input parameter can influence the drag speed, and varying speeds may impact the results. Consider evaluating different speeds when using this method in your tests.

| Parameters |
|---|---|
| `destX: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | the X-axis coordinate. |
| `destY: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | the Y-axis coordinate. |
| `steps: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | usually 40 steps. You can increase or decrease the steps to change the speed. |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | true if successful |

| Throws |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObjectNotFoundException` |   |

### exists

Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/test-uiautomator#2.2.0)

```
fun exists(): Boolean
```

Check if view exists. This methods performs a `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject#waitForExists(long)` with zero timeout. This basically returns immediately whether the view represented by this UiObject exists or not. If you need to wait longer for this view, then see `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject#waitForExists(long)`.

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | true if the view represented by this UiObject does exist |

### getBounds

Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/test-uiautomator#2.2.0)

```
fun getBounds(): Rect
```

Returns the view's `bounds` property. See `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject#getVisibleBounds()`

| Returns |
|---|---|
| `https://developer.android.com/reference/android/graphics/Rect.html` | Rect |

| Throws |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObjectNotFoundException` |   |

### getChild

Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/test-uiautomator#2.2.0)

```
fun getChild(selector: UiSelector): UiObject
```

Creates a new UiObject for a child view that is under the present UiObject.

| Parameters |
|---|---|
| `selector: https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiSelector` | for child view to match |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject` | a new UiObject representing the child view |

| Throws |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObjectNotFoundException` |   |

### getChildCount

Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/test-uiautomator#2.2.0)

```
fun getChildCount(): Int
```

Counts the child views immediately under the present UiObject.

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | the count of child views. |

| Throws |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObjectNotFoundException` |   |

### getClassName

Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/test-uiautomator#2.2.0)

```
fun getClassName(): String
```

Retrieves the `className` property of the UI element.

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | class name of the current node represented by this UiObject |

| Throws |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObjectNotFoundException` | if no match was found |

### getContentDescription

Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/test-uiautomator#2.2.0)

```
fun getContentDescription(): String
```

Reads the `content_desc` property of the UI element

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | value of node attribute "content_desc" |

| Throws |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObjectNotFoundException` |   |

### getFromParent

Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/test-uiautomator#2.2.0)

```
fun getFromParent(selector: UiSelector): UiObject
```

Creates a new UiObject for a sibling view or a child of the sibling view, relative to the present UiObject.

| Parameters |
|---|---|
| `selector: https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiSelector` | for a sibling view or children of the sibling view |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject` | a new UiObject representing the matched view |

| Throws |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObjectNotFoundException` |   |

### getPackageName

Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/test-uiautomator#2.2.0)

```
fun getPackageName(): String
```

Reads the view's `package` property

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | true if it is else false |

| Throws |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObjectNotFoundException` |   |

### getSelector

Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/test-uiautomator#2.2.0)

```
fun getSelector(): UiSelector
```

Debugging helper. A test can dump the properties of a selector as a string to its logs if needed. `getSelector().toString();`

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiSelector` | `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiSelector` |

### getText

Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/test-uiautomator#2.2.0)

```
fun getText(): String
```

Reads the `text` property of the UI element

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | text value of the current node represented by this UiObject |

| Throws |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObjectNotFoundException` | if no match could be found |

### getVisibleBounds

Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/test-uiautomator#2.2.0)

```
fun getVisibleBounds(): Rect
```

Returns the visible bounds of the view. If a portion of the view is visible, only the bounds of the visible portion are reported.

| Returns |
|---|---|
| `https://developer.android.com/reference/android/graphics/Rect.html` | Rect |

| Throws |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObjectNotFoundException` |   |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject#getBounds()` |   |

### isCheckable

Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/test-uiautomator#2.2.0)

```
fun isCheckable(): Boolean
```

Checks if the UI element's `checkable` property is currently true.

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | true if it is else false |

| Throws |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObjectNotFoundException` |   |

### isChecked

Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/test-uiautomator#2.2.0)

```
fun isChecked(): Boolean
```

Check if the UI element's `checked` property is currently true

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | true if it is else false |

| Throws |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObjectNotFoundException` |   |

### isClickable

Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/test-uiautomator#2.2.0)

```
fun isClickable(): Boolean
```

Checks if the UI element's `clickable` property is currently true.

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | true if it is else false |

| Throws |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObjectNotFoundException` |   |

### isEnabled

Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/test-uiautomator#2.2.0)

```
fun isEnabled(): Boolean
```

Checks if the UI element's `enabled` property is currently true.

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | true if it is else false |

| Throws |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObjectNotFoundException` |   |

### isFocusable

Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/test-uiautomator#2.2.0)

```
fun isFocusable(): Boolean
```

Check if the UI element's `focusable` property is currently true.

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | true if it is else false |

| Throws |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObjectNotFoundException` |   |

### isFocused

Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/test-uiautomator#2.2.0)

```
fun isFocused(): Boolean
```

Check if the UI element's `focused` property is currently true

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | true if it is else false |

| Throws |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObjectNotFoundException` |   |

### isLongClickable

Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/test-uiautomator#2.2.0)

```
fun isLongClickable(): Boolean
```

Check if the view's `long-clickable` property is currently true

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | true if it is else false |

| Throws |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObjectNotFoundException` |   |

### isScrollable

Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/test-uiautomator#2.2.0)

```
fun isScrollable(): Boolean
```

Check if the view's `scrollable` property is currently true

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | true if it is else false |

| Throws |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObjectNotFoundException` |   |

### isSelected

Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/test-uiautomator#2.2.0)

```
fun isSelected(): Boolean
```

Checks if the UI element's `selected` property is currently true.

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | true if it is else false |

| Throws |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObjectNotFoundException` |   |

### longClick

Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/test-uiautomator#2.2.0)

```
fun longClick(): Boolean
```

Long clicks the center of the visible bounds of the UI element

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | true if operation was successful |

| Throws |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObjectNotFoundException` |   |

### longClickBottomRight

Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/test-uiautomator#2.2.0)

```
fun longClickBottomRight(): Boolean
```

Long clicks bottom and right corner of the UI element

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | true if operation was successful |

| Throws |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObjectNotFoundException` |   |

### longClickTopLeft

Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/test-uiautomator#2.2.0)

```
fun longClickTopLeft(): Boolean
```

Long clicks on the top and left corner of the UI element

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | true if operation was successful |

| Throws |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObjectNotFoundException` |   |

### performMultiPointerGesture

```
fun performMultiPointerGesture(
    touches: Array<Array<MotionEvent.PointerCoords!>!>
): Boolean
```

Performs a multi-touch gesture. You must specify touch coordinates for at least 2 pointers. Each pointer must have all of its touch steps defined in an array of `https://developer.android.com/reference/android/view/MotionEvent.PointerCoords.html`. You can use this method to specify complex gestures, like circles and irregular shapes, where each pointer may take a different path. To create a single point on a pointer's touch path: `
PointerCoords p = new PointerCoords();
p.x = stepX;
p.y = stepY;
p.pressure = 1;
p.size = 1;
`

| Parameters |
|---|---|
| `touches: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://developer.android.com/reference/android/view/MotionEvent.PointerCoords.html!>!>` | represents the pointers' paths. Each `https://developer.android.com/reference/android/view/MotionEvent.PointerCoords.html` array represents a different pointer. Each `https://developer.android.com/reference/android/view/MotionEvent.PointerCoords.html` in an array element represents a touch point on a pointer's path. |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `true` if all touch events for this gesture are injected successfully, `false` otherwise |

### performTwoPointerGesture

Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/test-uiautomator#2.2.0)

```
fun performTwoPointerGesture(
    startPoint1: Point,
    startPoint2: Point,
    endPoint1: Point,
    endPoint2: Point,
    steps: Int
): Boolean
```

Generates a two-pointer gesture with arbitrary starting and ending points.

| Parameters |
|---|---|
| `startPoint1: https://developer.android.com/reference/android/graphics/Point.html` | start point of pointer 1 |
| `startPoint2: https://developer.android.com/reference/android/graphics/Point.html` | start point of pointer 2 |
| `endPoint1: https://developer.android.com/reference/android/graphics/Point.html` | end point of pointer 1 |
| `endPoint2: https://developer.android.com/reference/android/graphics/Point.html` | end point of pointer 2 |
| `steps: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | the number of steps for the gesture. Steps are injected about 5 milliseconds apart, so 100 steps may take around 0.5 seconds to complete. |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `true` if all touch events for this gesture are injected successfully, `false` otherwise |

### pinchIn

Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/test-uiautomator#2.2.0)

```
fun pinchIn(percent: Int, steps: Int): Boolean
```

Performs a two-pointer gesture, where each pointer moves diagonally toward the other, from the edges to the center of this UiObject .

| Parameters |
|---|---|
| `percent: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | percentage of the object's diagonal length for the pinch gesture |
| `steps: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | the number of steps for the gesture. Steps are injected about 5 milliseconds apart, so 100 steps may take around 0.5 seconds to complete. |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `true` if all touch events for this gesture are injected successfully, `false` otherwise |

| Throws |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObjectNotFoundException` |   |

### pinchOut

Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/test-uiautomator#2.2.0)

```
fun pinchOut(percent: Int, steps: Int): Boolean
```

Performs a two-pointer gesture, where each pointer moves diagonally opposite across the other, from the center out towards the edges of the this UiObject.

| Parameters |
|---|---|
| `percent: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | percentage of the object's diagonal length for the pinch gesture |
| `steps: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | the number of steps for the gesture. Steps are injected about 5 milliseconds apart, so 100 steps may take around 0.5 seconds to complete. |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `true` if all touch events for this gesture are injected successfully, `false` otherwise |

| Throws |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObjectNotFoundException` |   |

### setText

Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/test-uiautomator#2.2.0)

```
fun setText(text: String?): Boolean
```

Sets the text in an editable field, after clearing the field's content.

The `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiSelector` selector of this object must reference a UI element that is editable.

When you call this method, the method sets focus on the editable field, clears its existing content, then injects your specified text into the field.

If you want to capture the original contents of the field, call `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObject#getText()` first. You can then modify the text and use this method to update the field.

**Improvements:** Post API Level 19 (KitKat release), the underlying implementation is updated to a dedicated set text accessibility action, and it also now supports Unicode.

| Parameters |
|---|---|
| `text: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html?` | string to set |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | true if operation is successful |

| Throws |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObjectNotFoundException` |   |

### swipeDown

Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/test-uiautomator#2.2.0)

```
fun swipeDown(steps: Int): Boolean
```

Performs the swipe down action on the UiObject. The swipe gesture can be performed over any surface. The targeted UI element does not need to be scrollable. See also:

- `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiScrollable#scrollToBeginning(int)`
- `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiScrollable#scrollToEnd(int)`
- `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiScrollable#scrollBackward()`
- `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiScrollable#scrollForward()`

| Parameters |
|---|---|
| `steps: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | indicates the number of injected move steps into the system. Steps are injected about the length of a frame apart (throttled by VSync). |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | true if successful |

| Throws |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObjectNotFoundException` |   |

### swipeLeft

Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/test-uiautomator#2.2.0)

```
fun swipeLeft(steps: Int): Boolean
```

Performs the swipe left action on the UiObject. The swipe gesture can be performed over any surface. The targeted UI element does not need to be scrollable. See also:

- `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiScrollable#scrollToBeginning(int)`
- `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiScrollable#scrollToEnd(int)`
- `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiScrollable#scrollBackward()`
- `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiScrollable#scrollForward()`

| Parameters |
|---|---|
| `steps: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | indicates the number of injected move steps into the system. Steps are injected about the length of a frame apart (throttled by VSync). |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | true if successful |

| Throws |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObjectNotFoundException` |   |

### swipeRight

Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/test-uiautomator#2.2.0)

```
fun swipeRight(steps: Int): Boolean
```

Performs the swipe right action on the UiObject. The swipe gesture can be performed over any surface. The targeted UI element does not need to be scrollable. See also:

- `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiScrollable#scrollToBeginning(int)`
- `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiScrollable#scrollToEnd(int)`
- `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiScrollable#scrollBackward()`
- `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiScrollable#scrollForward()`

| Parameters |
|---|---|
| `steps: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | indicates the number of injected move steps into the system. Steps are injected about the length of a frame apart (throttled by VSync). |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | true if successful |

| Throws |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObjectNotFoundException` |   |

### swipeUp

Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/test-uiautomator#2.2.0)

```
fun swipeUp(steps: Int): Boolean
```

Performs the swipe up action on the UiObject. See also:

- `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiScrollable#scrollToBeginning(int)`
- `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiScrollable#scrollToEnd(int)`
- `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiScrollable#scrollBackward()`
- `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiScrollable#scrollForward()`

| Parameters |
|---|---|
| `steps: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | indicates the number of injected move steps into the system. Steps are injected about the length of a frame apart (throttled by VSync). |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | true of successful |

| Throws |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiObjectNotFoundException` |   |

### waitForExists

Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/test-uiautomator#2.2.0)

```
fun waitForExists(timeout: Long): Boolean
```

Waits a specified length of time for a view to become visible. This method waits until the view becomes visible on the display, or until the timeout has elapsed. You can use this method in situations where the content that you want to select is not immediately displayed.

| Parameters |
|---|---|
| `timeout: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | the amount of time to wait (in milliseconds) |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | true if the view is displayed, else false if timeout elapsed while waiting |

### waitUntilGone

Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/test-uiautomator#2.2.0)

```
fun waitUntilGone(timeout: Long): Boolean
```

Waits a specified length of time for a view to become undetectable. This method waits until a view is no longer matchable, or until the timeout has elapsed. A view becomes undetectable when the `https://developer.android.com/reference/kotlin/androidx/test/uiautomator/UiSelector` of the object is unable to find a match because the element has either changed its state or is no longer displayed. You can use this method when attempting to wait for some long operation to compete, such as downloading a large file or connecting to a remote server.

| Parameters |
|---|---|
| `timeout: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | time to wait (in milliseconds) |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | true if the element is gone before timeout elapsed, else false if timeout elapsed but a matching element is still found. |

## Protected functions

### findAccessibilityNodeInfo

Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/test-uiautomator#2.2.0)

```
protected fun findAccessibilityNodeInfo(timeout: Long): AccessibilityNodeInfo?
```

Finds a matching UI element in the accessibility hierarchy, by using the selector for this UiObject.

| Parameters |
|---|---|
| `timeout: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | in milliseconds |

| Returns |
|---|---|
| `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.html?` | AccessibilityNodeInfo if found else null |