# Appium

## getLogTypes[​](#getlogtypes "Direct link to getLogTypes")

Get available log types.<br /><br />Appium command. More details can be found in the [official protocol docs](https://github.com/SeleniumHQ/selenium/wiki/JsonWireProtocol#sessionsessionidlogtypes).

### Usage[​](#usage "Direct link to Usage")

```
await driver.getLogTypes()
```

### Returns[​](#returns "Direct link to Returns")

* **\<String\[]>** **`logTypes`:** The list of available log types, example: browser, driver.

***

## getLogs[​](#getlogs "Direct link to getLogs")

Get the log for a given log type. Log buffer is reset after each request.<br /><br />Appium command. More details can be found in the [official protocol docs](https://github.com/SeleniumHQ/selenium/wiki/JsonWireProtocol#sessionsessionidlog).

### Usage[​](#usage-1 "Direct link to Usage")

```
await driver.getLogs(type)
```

### Parameters[​](#parameters "Direct link to Parameters")

| Name   | Type     | Details      |
| ------ | -------- | ------------ |
| `type` | `string` | the log type |

### Returns[​](#returns-1 "Direct link to Returns")

* **\<Object\[]>** **`logs`:** The list of log entries.

***

## getSession[​](#getsession "Direct link to getSession")

Retrieve the capabilities of the current session.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.io/docs/en/latest/reference/api/jsonwp/#getsession).

caution

This protocol command is deprecated<br />Use `getAppiumSessionCapabilities` instead

### Usage[​](#usage-2 "Direct link to Usage")

```
await driver.getSession()
```

### Returns[​](#returns-2 "Direct link to Returns")

* **\<Object>** **`capabilities`:** An object describing the session's capabilities.

***

## getAppiumContext[​](#getappiumcontext "Direct link to getAppiumContext")

Appium command. More details can be found in the [official protocol docs](https://appium.io/docs/en/latest/reference/api/mjsonwp/#getcurrentcontext).

### Usage[​](#usage-3 "Direct link to Usage")

```
await driver.getAppiumContext()
```

### Returns[​](#returns-3 "Direct link to Returns")

* **\<Context>** **`context`:** a string representing the current context or null representing 'no context'

***

## switchAppiumContext[​](#switchappiumcontext "Direct link to switchAppiumContext")

Appium command. More details can be found in the [official protocol docs](https://appium.io/docs/en/latest/reference/api/mjsonwp/#setcontext).

### Usage[​](#usage-4 "Direct link to Usage")

```
await driver.switchAppiumContext(name)
```

### Parameters[​](#parameters-1 "Direct link to Parameters")

| Name   | Type     | Details                                    |
| ------ | -------- | ------------------------------------------ |
| `name` | `string` | a string representing an available context |

***

## getAppiumContexts[​](#getappiumcontexts "Direct link to getAppiumContexts")

Appium command. More details can be found in the [official protocol docs](https://appium.io/docs/en/latest/reference/api/mjsonwp/#getcontexts).

### Usage[​](#usage-5 "Direct link to Usage")

```
await driver.getAppiumContexts()
```

### Returns[​](#returns-4 "Direct link to Returns")

* **\<Context\[]>** **`contexts`:** an array of strings representing available contexts, e.g. 'WEBVIEW', or 'NATIVE'

***

## getAppiumCommands[​](#getappiumcommands "Direct link to getAppiumCommands")

Retrieve the endpoints and BiDi commands supported in the current session.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.io/docs/en/latest/reference/api/appium/#listcommands).

### Usage[​](#usage-6 "Direct link to Usage")

```
await driver.getAppiumCommands()
```

### Returns[​](#returns-5 "Direct link to Returns")

* **\<Object>** **`commands`:** Supported endpoints and BiDi commands, each grouped into common, driver-specific, and plugin-specific endpoints/commands.

***

## getAppiumExtensions[​](#getappiumextensions "Direct link to getAppiumExtensions")

Retrieve the extension commands supported in the current session.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.io/docs/en/latest/reference/api/appium/#listextensions).

### Usage[​](#usage-7 "Direct link to Usage")

```
await driver.getAppiumExtensions()
```

### Returns[​](#returns-6 "Direct link to Returns")

* **\<Object>** **`commands`:** Supported extension commands, grouped into driver-specific and plugin-specific commands.

***

## getAppiumSessionCapabilities[​](#getappiumsessioncapabilities "Direct link to getAppiumSessionCapabilities")

Retrieve the capabilities of the current session.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.io/docs/en/latest/reference/api/appium/#getappiumsessioncapabilities).

### Usage[​](#usage-8 "Direct link to Usage")

```
await driver.getAppiumSessionCapabilities()
```

### Returns[​](#returns-7 "Direct link to Returns")

* **\<Object>** **`capabilities`:** An object describing the session's capabilities.

***

## appiumShake[​](#appiumshake "Direct link to appiumShake")

Perform a shake action on the device. This is the raw Appium protocol endpoint. Prefer the `shake` mobile command which provides automatic Appium 3 compatibility with fallback for older drivers.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.github.io/appium.io/docs/en/commands/device/interactions/shake/).

caution

This protocol command is deprecated<br />Use the `shake` mobile command (`driver.shake()`) instead

### Usage[​](#usage-9 "Direct link to Usage")

```
await driver.appiumShake()
```

### Support[​](#support "Direct link to Support")

![Support for XCUITest (9.3+), UIAutomation (8.0 to 9.3)](data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iRWJlbmVfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgd2lkdGg9IjQ5Ni4yNTVweCIgaGVpZ2h0PSI2MDguNzI4cHgiIHZpZXdCb3g9IjAgMCA0OTYuMjU1IDYwOC43MjgiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQ5Ni4yNTUgNjA4LjcyODsiCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxwYXRoIHN0eWxlPSJmaWxsOiM5OTk5OTk7IiBkPSJNMjczLjgxLDUyLjk3M0MzMTMuODA2LDAuMjU3LDM2OS40MSwwLDM2OS40MSwwczguMjcxLDQ5LjU2Mi0zMS40NjMsOTcuMzA2CgljLTQyLjQyNiw1MC45OC05MC42NDksNDIuNjM4LTkwLjY0OSw0Mi42MzhTMjM4LjI0Myw5OS44NSwyNzMuODEsNTIuOTczeiIvPgo8cGF0aCBzdHlsZT0iZmlsbDojOTk5OTk5OyIgZD0iTTI1Mi4zODUsMTc0LjY2MmMyMC41NzYsMCw1OC43NjQtMjguMjg0LDEwOC40NzEtMjguMjg0Yzg1LjU2MiwwLDExOS4yMjIsNjAuODgzLDExOS4yMjIsNjAuODgzCglzLTY1LjgzMywzMy42NTktNjUuODMzLDExNS4zMzFjMCw5Mi4xMzMsODIuMDEsMTIzLjg4NSw4Mi4wMSwxMjMuODg1cy01Ny4zMjgsMTYxLjM1Ny0xMzQuNzYyLDE2MS4zNTcKCWMtMzUuNTY1LDAtNjMuMjE1LTIzLjk2Ny0xMDAuNjg4LTIzLjk2N2MtMzguMTg4LDAtNzYuMDg0LDI0Ljg2MS0xMDAuNzY2LDI0Ljg2MUM4OS4zMyw2MDguNzMsMCw0NTUuNjY2LDAsMzMyLjYyOAoJYzAtMTIxLjA1Miw3NS42MTItMTg0LjU1NCwxNDYuNTMzLTE4NC41NTRDMTkyLjYzOCwxNDguMDc0LDIyOC40MTYsMTc0LjY2MiwyNTIuMzg1LDE3NC42NjJ6Ii8+Cjwvc3ZnPgo=)

* **iOS:** XCUITest (9.3+), UIAutomation (8.0 to 9.3)

***

## appiumLock[​](#appiumlock "Direct link to appiumLock")

Lock the device. This is the raw Appium protocol endpoint. Prefer the `lock` mobile command which provides automatic Appium 3 compatibility with fallback for older drivers.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.github.io/appium.io/docs/en/commands/device/interactions/lock/).

caution

This protocol command is deprecated<br />Use the `lock` mobile command (`driver.lock()`) instead

### Usage[​](#usage-10 "Direct link to Usage")

```
await driver.appiumLock(seconds)
```

### Parameters[​](#parameters-2 "Direct link to Parameters")

| Name                      | Type     | Details                                |
| ------------------------- | -------- | -------------------------------------- |
| `seconds`<br />*optional* | `number` | how long to lock the screen (iOS only) |

### Support[​](#support-1 "Direct link to Support")

![Support for UIAutomation (8.0 to 9.3)](data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iRWJlbmVfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgd2lkdGg9IjQ5Ni4yNTVweCIgaGVpZ2h0PSI2MDguNzI4cHgiIHZpZXdCb3g9IjAgMCA0OTYuMjU1IDYwOC43MjgiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQ5Ni4yNTUgNjA4LjcyODsiCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxwYXRoIHN0eWxlPSJmaWxsOiM5OTk5OTk7IiBkPSJNMjczLjgxLDUyLjk3M0MzMTMuODA2LDAuMjU3LDM2OS40MSwwLDM2OS40MSwwczguMjcxLDQ5LjU2Mi0zMS40NjMsOTcuMzA2CgljLTQyLjQyNiw1MC45OC05MC42NDksNDIuNjM4LTkwLjY0OSw0Mi42MzhTMjM4LjI0Myw5OS44NSwyNzMuODEsNTIuOTczeiIvPgo8cGF0aCBzdHlsZT0iZmlsbDojOTk5OTk5OyIgZD0iTTI1Mi4zODUsMTc0LjY2MmMyMC41NzYsMCw1OC43NjQtMjguMjg0LDEwOC40NzEtMjguMjg0Yzg1LjU2MiwwLDExOS4yMjIsNjAuODgzLDExOS4yMjIsNjAuODgzCglzLTY1LjgzMywzMy42NTktNjUuODMzLDExNS4zMzFjMCw5Mi4xMzMsODIuMDEsMTIzLjg4NSw4Mi4wMSwxMjMuODg1cy01Ny4zMjgsMTYxLjM1Ny0xMzQuNzYyLDE2MS4zNTcKCWMtMzUuNTY1LDAtNjMuMjE1LTIzLjk2Ny0xMDAuNjg4LTIzLjk2N2MtMzguMTg4LDAtNzYuMDg0LDI0Ljg2MS0xMDAuNzY2LDI0Ljg2MUM4OS4zMyw2MDguNzMsMCw0NTUuNjY2LDAsMzMyLjYyOAoJYzAtMTIxLjA1Miw3NS42MTItMTg0LjU1NCwxNDYuNTMzLTE4NC41NTRDMTkyLjYzOCwxNDguMDc0LDIyOC40MTYsMTc0LjY2MiwyNTIuMzg1LDE3NC42NjJ6Ii8+Cjwvc3ZnPgo=) ![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg) ![Support for Windows (10+)](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA4OCA4OCI+PHBhdGggZD0ibTAgMTIuNDAyIDM1LjY4Ny00Ljg2MDIuMDE1NiAzNC40MjMtMzUuNjcuMjAzMTN6bTM1LjY3IDMzLjUyOS4wMjc3IDM0LjQ1My0zNS42Ny00LjkwNDEtLjAwMi0yOS43OHptNC4zMjYxLTM5LjAyNSA0Ny4zMTgtNi45MDZ2NDEuNTI3bC00Ny4zMTguMzc1NjV6bTQ3LjMyOSAzOS4zNDktLjAxMTEgNDEuMzQtNDcuMzE4LTYuNjc4NC0uMDY2My0zNC43Mzl6IiBmaWxsPSIjMDBhZGVmIi8+PC9zdmc+)

* **iOS:** UIAutomation (8.0 to 9.3)
* **Android:** UiAutomator (4.2+)
* **Windows:** Windows (10+)

***

## appiumUnlock[​](#appiumunlock "Direct link to appiumUnlock")

Unlock the device. This is the raw Appium protocol endpoint. Prefer the `unlock` mobile command which provides automatic Appium 3 compatibility with fallback for older drivers.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.github.io/appium.io/docs/en/commands/device/interactions/unlock/).

caution

This protocol command is deprecated<br />Use the `unlock` mobile command (`driver.unlock()`) instead

### Usage[​](#usage-11 "Direct link to Usage")

```
await driver.appiumUnlock()
```

### Support[​](#support-2 "Direct link to Support")

![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg) ![Support for Windows (10+)](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA4OCA4OCI+PHBhdGggZD0ibTAgMTIuNDAyIDM1LjY4Ny00Ljg2MDIuMDE1NiAzNC40MjMtMzUuNjcuMjAzMTN6bTM1LjY3IDMzLjUyOS4wMjc3IDM0LjQ1My0zNS42Ny00LjkwNDEtLjAwMi0yOS43OHptNC4zMjYxLTM5LjAyNSA0Ny4zMTgtNi45MDZ2NDEuNTI3bC00Ny4zMTguMzc1NjV6bTQ3LjMyOSAzOS4zNDktLjAxMTEgNDEuMzQtNDcuMzE4LTYuNjc4NC0uMDY2My0zNC43Mzl6IiBmaWxsPSIjMDBhZGVmIi8+PC9zdmc+)

* **Android:** UiAutomator (4.2+)
* **Windows:** Windows (10+)

***

## appiumIsLocked[​](#appiumislocked "Direct link to appiumIsLocked")

Check whether the device is locked or not. This is the raw Appium protocol endpoint. Prefer the `isLocked` mobile command which provides automatic Appium 3 compatibility with fallback for older drivers.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.github.io/appium.io/docs/en/commands/device/interactions/is-locked/).

caution

This protocol command is deprecated<br />Use the `isLocked` mobile command (`driver.isLocked()`) instead

### Usage[​](#usage-12 "Direct link to Usage")

```
await driver.appiumIsLocked()
```

### Returns[​](#returns-8 "Direct link to Returns")

* **\<boolean>** **`isLocked`:** True if the device is locked, false if not

### Support[​](#support-3 "Direct link to Support")

![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg) ![Support for Windows (10+)](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA4OCA4OCI+PHBhdGggZD0ibTAgMTIuNDAyIDM1LjY4Ny00Ljg2MDIuMDE1NiAzNC40MjMtMzUuNjcuMjAzMTN6bTM1LjY3IDMzLjUyOS4wMjc3IDM0LjQ1My0zNS42Ny00LjkwNDEtLjAwMi0yOS43OHptNC4zMjYxLTM5LjAyNSA0Ny4zMTgtNi45MDZ2NDEuNTI3bC00Ny4zMTguMzc1NjV6bTQ3LjMyOSAzOS4zNDktLjAxMTEgNDEuMzQtNDcuMzE4LTYuNjc4NC0uMDY2My0zNC43Mzl6IiBmaWxsPSIjMDBhZGVmIi8+PC9zdmc+)

* **Android:** UiAutomator (4.2+)
* **Windows:** Windows (10+)

***

## startRecordingScreen[​](#startrecordingscreen "Direct link to startRecordingScreen")

Start recording the screen.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.github.io/appium.io/docs/en/commands/device/recording-screen/start-recording-screen/).

### Usage[​](#usage-13 "Direct link to Usage")

```
await driver.startRecordingScreen(options)
```

### Parameters[​](#parameters-3 "Direct link to Parameters")

| Name                      | Type     | Details                                                                                                                                                                                                                |
| ------------------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `options`<br />*optional* | `object` | command parameters that can contain keys like: remotePath, username, password, method, forceRestart, timeLimit, videoType, videoQuality, videoFps, bitRate, videoSize, bugReport (see more description in Appium docs) |

### Support[​](#support-4 "Direct link to Support")

![Support for XCUITest (9.3+)](data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iRWJlbmVfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgd2lkdGg9IjQ5Ni4yNTVweCIgaGVpZ2h0PSI2MDguNzI4cHgiIHZpZXdCb3g9IjAgMCA0OTYuMjU1IDYwOC43MjgiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQ5Ni4yNTUgNjA4LjcyODsiCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxwYXRoIHN0eWxlPSJmaWxsOiM5OTk5OTk7IiBkPSJNMjczLjgxLDUyLjk3M0MzMTMuODA2LDAuMjU3LDM2OS40MSwwLDM2OS40MSwwczguMjcxLDQ5LjU2Mi0zMS40NjMsOTcuMzA2CgljLTQyLjQyNiw1MC45OC05MC42NDksNDIuNjM4LTkwLjY0OSw0Mi42MzhTMjM4LjI0Myw5OS44NSwyNzMuODEsNTIuOTczeiIvPgo8cGF0aCBzdHlsZT0iZmlsbDojOTk5OTk5OyIgZD0iTTI1Mi4zODUsMTc0LjY2MmMyMC41NzYsMCw1OC43NjQtMjguMjg0LDEwOC40NzEtMjguMjg0Yzg1LjU2MiwwLDExOS4yMjIsNjAuODgzLDExOS4yMjIsNjAuODgzCglzLTY1LjgzMywzMy42NTktNjUuODMzLDExNS4zMzFjMCw5Mi4xMzMsODIuMDEsMTIzLjg4NSw4Mi4wMSwxMjMuODg1cy01Ny4zMjgsMTYxLjM1Ny0xMzQuNzYyLDE2MS4zNTcKCWMtMzUuNTY1LDAtNjMuMjE1LTIzLjk2Ny0xMDAuNjg4LTIzLjk2N2MtMzguMTg4LDAtNzYuMDg0LDI0Ljg2MS0xMDAuNzY2LDI0Ljg2MUM4OS4zMyw2MDguNzMsMCw0NTUuNjY2LDAsMzMyLjYyOAoJYzAtMTIxLjA1Miw3NS42MTItMTg0LjU1NCwxNDYuNTMzLTE4NC41NTRDMTkyLjYzOCwxNDguMDc0LDIyOC40MTYsMTc0LjY2MiwyNTIuMzg1LDE3NC42NjJ6Ii8+Cjwvc3ZnPgo=) ![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg) ![Support for Windows (10+)](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA4OCA4OCI+PHBhdGggZD0ibTAgMTIuNDAyIDM1LjY4Ny00Ljg2MDIuMDE1NiAzNC40MjMtMzUuNjcuMjAzMTN6bTM1LjY3IDMzLjUyOS4wMjc3IDM0LjQ1My0zNS42Ny00LjkwNDEtLjAwMi0yOS43OHptNC4zMjYxLTM5LjAyNSA0Ny4zMTgtNi45MDZ2NDEuNTI3bC00Ny4zMTguMzc1NjV6bTQ3LjMyOSAzOS4zNDktLjAxMTEgNDEuMzQtNDcuMzE4LTYuNjc4NC0uMDY2My0zNC43Mzl6IiBmaWxsPSIjMDBhZGVmIi8+PC9zdmc+)

* **iOS:** XCUITest (9.3+)
* **Android:** UiAutomator (4.2+)
* **Windows:** Windows (10+)

***

## stopRecordingScreen[​](#stoprecordingscreen "Direct link to stopRecordingScreen")

Stop recording screen.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.github.io/appium.io/docs/en/commands/device/recording-screen/stop-recording-screen/).

### Usage[​](#usage-14 "Direct link to Usage")

```
await driver.stopRecordingScreen(remotePath, username, password, method)
```

### Parameters[​](#parameters-4 "Direct link to Parameters")

| Name                         | Type     | Details                                                                                                                                                                                                                                                                                                                                                                                 |
| ---------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `remotePath`<br />*optional* | `string` | The path to the remote location, where the resulting video should be uploaded. The following protocols are supported http/https, ftp. This option only has an effect if there is screen recording process in progreess and forceRestart parameter is not set to true. Null or empty string value (the default setting) means the content of resulting file should be encoded as Base64. |
| `username`<br />*optional*   | `string` | The name of the user for the remote authentication.                                                                                                                                                                                                                                                                                                                                     |
| `password`<br />*optional*   | `string` | The password for the remote authentication.                                                                                                                                                                                                                                                                                                                                             |
| `method`<br />*optional*     | `string` | The http multipart upload method name. The 'PUT' one is used by default.                                                                                                                                                                                                                                                                                                                |

### Returns[​](#returns-9 "Direct link to Returns")

* **\<string>** **`response`:** Base64 encoded string. If remote\_path is set, the response is empty string

### Support[​](#support-5 "Direct link to Support")

![Support for XCUITest (9.3+)](data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iRWJlbmVfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgd2lkdGg9IjQ5Ni4yNTVweCIgaGVpZ2h0PSI2MDguNzI4cHgiIHZpZXdCb3g9IjAgMCA0OTYuMjU1IDYwOC43MjgiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQ5Ni4yNTUgNjA4LjcyODsiCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxwYXRoIHN0eWxlPSJmaWxsOiM5OTk5OTk7IiBkPSJNMjczLjgxLDUyLjk3M0MzMTMuODA2LDAuMjU3LDM2OS40MSwwLDM2OS40MSwwczguMjcxLDQ5LjU2Mi0zMS40NjMsOTcuMzA2CgljLTQyLjQyNiw1MC45OC05MC42NDksNDIuNjM4LTkwLjY0OSw0Mi42MzhTMjM4LjI0Myw5OS44NSwyNzMuODEsNTIuOTczeiIvPgo8cGF0aCBzdHlsZT0iZmlsbDojOTk5OTk5OyIgZD0iTTI1Mi4zODUsMTc0LjY2MmMyMC41NzYsMCw1OC43NjQtMjguMjg0LDEwOC40NzEtMjguMjg0Yzg1LjU2MiwwLDExOS4yMjIsNjAuODgzLDExOS4yMjIsNjAuODgzCglzLTY1LjgzMywzMy42NTktNjUuODMzLDExNS4zMzFjMCw5Mi4xMzMsODIuMDEsMTIzLjg4NSw4Mi4wMSwxMjMuODg1cy01Ny4zMjgsMTYxLjM1Ny0xMzQuNzYyLDE2MS4zNTcKCWMtMzUuNTY1LDAtNjMuMjE1LTIzLjk2Ny0xMDAuNjg4LTIzLjk2N2MtMzguMTg4LDAtNzYuMDg0LDI0Ljg2MS0xMDAuNzY2LDI0Ljg2MUM4OS4zMyw2MDguNzMsMCw0NTUuNjY2LDAsMzMyLjYyOAoJYzAtMTIxLjA1Miw3NS42MTItMTg0LjU1NCwxNDYuNTMzLTE4NC41NTRDMTkyLjYzOCwxNDguMDc0LDIyOC40MTYsMTc0LjY2MiwyNTIuMzg1LDE3NC42NjJ6Ii8+Cjwvc3ZnPgo=) ![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg) ![Support for Windows (10+)](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA4OCA4OCI+PHBhdGggZD0ibTAgMTIuNDAyIDM1LjY4Ny00Ljg2MDIuMDE1NiAzNC40MjMtMzUuNjcuMjAzMTN6bTM1LjY3IDMzLjUyOS4wMjc3IDM0LjQ1My0zNS42Ny00LjkwNDEtLjAwMi0yOS43OHptNC4zMjYxLTM5LjAyNSA0Ny4zMTgtNi45MDZ2NDEuNTI3bC00Ny4zMTguMzc1NjV6bTQ3LjMyOSAzOS4zNDktLjAxMTEgNDEuMzQtNDcuMzE4LTYuNjc4NC0uMDY2My0zNC43Mzl6IiBmaWxsPSIjMDBhZGVmIi8+PC9zdmc+)

* **iOS:** XCUITest (9.3+)
* **Android:** UiAutomator (4.2+)
* **Windows:** Windows (10+)

***

## appiumGetPerformanceDataTypes[​](#appiumgetperformancedatatypes "Direct link to appiumGetPerformanceDataTypes")

Returns the information types of the system state which is supported to read as like cpu, memory, network traffic, and battery. This is the raw Appium protocol endpoint. Prefer the `getPerformanceDataTypes` mobile command which provides automatic Appium 3 compatibility with fallback for older drivers.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.github.io/appium.io/docs/en/commands/device/performance-data/performance-data-types/).

caution

This protocol command is deprecated<br />Use the `getPerformanceDataTypes` mobile command (`driver.getPerformanceDataTypes()`) instead

### Usage[​](#usage-15 "Direct link to Usage")

```
await driver.appiumGetPerformanceDataTypes()
```

### Returns[​](#returns-10 "Direct link to Returns")

* **\<string\[]>** **`performanceTypes`:** The available performance data types (cpuinfo|batteryinfo|networkinfo|memoryinfo)

### Support[​](#support-6 "Direct link to Support")

![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg)

* **Android:** UiAutomator (4.2+)

***

## appiumGetPerformanceData[​](#appiumgetperformancedata "Direct link to appiumGetPerformanceData")

Returns the information of the system state which is supported to read as like cpu, memory, network traffic, and battery. This is the raw Appium protocol endpoint. Prefer the `getPerformanceData` mobile command which provides automatic Appium 3 compatibility with fallback for older drivers.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.github.io/appium.io/docs/en/commands/device/performance-data/get-performance-data/).

caution

This protocol command is deprecated<br />Use the `getPerformanceData` mobile command (`driver.getPerformanceData()`) instead

### Usage[​](#usage-16 "Direct link to Usage")

```
await driver.appiumGetPerformanceData(packageName, dataType, dataReadTimeout)
```

### Parameters[​](#parameters-5 "Direct link to Parameters")

| Name                              | Type     | Details                                                                                                |
| --------------------------------- | -------- | ------------------------------------------------------------------------------------------------------ |
| `packageName`                     | `string` | the package name of the application                                                                    |
| `dataType`                        | `string` | the type of system state which wants to read. It should be one of the supported performance data types |
| `dataReadTimeout`<br />*optional* | `number` | the number of attempts to read                                                                         |

### Returns[​](#returns-11 "Direct link to Returns")

* **\<string\[]>** **`performanceData`:** The information type of the system state which is supported to read as like cpu, memory, network traffic, and battery

### Support[​](#support-7 "Direct link to Support")

![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg)

* **Android:** UiAutomator (4.2+)

***

## appiumPressKeyCode[​](#appiumpresskeycode "Direct link to appiumPressKeyCode")

Press a particular key on the device. This is the raw Appium protocol endpoint. Prefer the `pressKeyCode` mobile command which provides automatic Appium 3 compatibility with fallback for older drivers.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.github.io/appium.io/docs/en/commands/device/keys/press-keycode/).

caution

This protocol command is deprecated<br />Use the `pressKeyCode` mobile command (`driver.pressKeyCode()`) instead

### Usage[​](#usage-17 "Direct link to Usage")

```
await driver.appiumPressKeyCode(keycode, metastate, flags)
```

### Parameters[​](#parameters-6 "Direct link to Parameters")

| Name                        | Type     | Details                              |
| --------------------------- | -------- | ------------------------------------ |
| `keycode`                   | `number` | keycode to press                     |
| `metastate`<br />*optional* | `number` | meta state to press the keycode with |
| `flags`<br />*optional*     | `number` | flags for the keypress               |

### Support[​](#support-8 "Direct link to Support")

![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg)

* **Android:** UiAutomator (4.2+)

***

## appiumLongPressKeyCode[​](#appiumlongpresskeycode "Direct link to appiumLongPressKeyCode")

Press and hold a particular key code on the device. This is the raw Appium protocol endpoint. Prefer the `longPressKeyCode` mobile command which provides automatic Appium 3 compatibility with fallback for older drivers.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.github.io/appium.io/docs/en/commands/device/keys/long-press-keycode/).

caution

This protocol command is deprecated<br />Use the `longPressKeyCode` mobile command (`driver.longPressKeyCode()`) instead

### Usage[​](#usage-18 "Direct link to Usage")

```
await driver.appiumLongPressKeyCode(keycode, metastate, flags)
```

### Parameters[​](#parameters-7 "Direct link to Parameters")

| Name                        | Type     | Details                        |
| --------------------------- | -------- | ------------------------------ |
| `keycode`                   | `number` | keycode to press on the device |
| `metastate`<br />*optional* | `number` | metastate for the keypress     |
| `flags`<br />*optional*     | `number` | flags for the keypress         |

### Support[​](#support-9 "Direct link to Support")

![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg)

* **Android:** UiAutomator (4.2+)

***

## appiumSendKeyEvent[​](#appiumsendkeyevent "Direct link to appiumSendKeyEvent")

Send a key code to the device. This is the raw Appium protocol endpoint. Prefer the `pressKeyCode` mobile command which provides automatic Appium 3 compatibility with fallback for older drivers.<br /><br />Appium command. More details can be found in the [official protocol docs](https://github.com/appium/appium-base-driver/blob/master/docs/mjsonwp/protocol-methods.md#appium-extension-endpoints).

caution

This protocol command is deprecated<br />Use the `pressKeyCode` mobile command (`driver.pressKeyCode()`) instead

### Usage[​](#usage-19 "Direct link to Usage")

```
await driver.appiumSendKeyEvent(keycode, metastate)
```

### Parameters[​](#parameters-8 "Direct link to Parameters")

| Name                        | Type     | Details                              |
| --------------------------- | -------- | ------------------------------------ |
| `keycode`                   | `string` | keycode to press                     |
| `metastate`<br />*optional* | `string` | meta state to press the keycode with |

### Support[​](#support-10 "Direct link to Support")

![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg)

* **Android:** UiAutomator (4.2+)

***

## rotateDevice[​](#rotatedevice "Direct link to rotateDevice")

Rotate the device in three dimensions.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.io/docs/en/latest/reference/api/mjsonwp/#setrotation).

### Usage[​](#usage-20 "Direct link to Usage")

```
await driver.rotateDevice(x, y, z)
```

### Parameters[​](#parameters-9 "Direct link to Parameters")

| Name | Type     | Details                                              |
| ---- | -------- | ---------------------------------------------------- |
| `x`  | `number` | x offset to use for the center of the rotate gesture |
| `y`  | `number` | y offset to use for the center of the rotate gesture |
| `z`  | `number` | z offset to use for the center of the rotate gesture |

### Support[​](#support-11 "Direct link to Support")

![Support for UIAutomation (8.0 to 9.3)](data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iRWJlbmVfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgd2lkdGg9IjQ5Ni4yNTVweCIgaGVpZ2h0PSI2MDguNzI4cHgiIHZpZXdCb3g9IjAgMCA0OTYuMjU1IDYwOC43MjgiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQ5Ni4yNTUgNjA4LjcyODsiCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxwYXRoIHN0eWxlPSJmaWxsOiM5OTk5OTk7IiBkPSJNMjczLjgxLDUyLjk3M0MzMTMuODA2LDAuMjU3LDM2OS40MSwwLDM2OS40MSwwczguMjcxLDQ5LjU2Mi0zMS40NjMsOTcuMzA2CgljLTQyLjQyNiw1MC45OC05MC42NDksNDIuNjM4LTkwLjY0OSw0Mi42MzhTMjM4LjI0Myw5OS44NSwyNzMuODEsNTIuOTczeiIvPgo8cGF0aCBzdHlsZT0iZmlsbDojOTk5OTk5OyIgZD0iTTI1Mi4zODUsMTc0LjY2MmMyMC41NzYsMCw1OC43NjQtMjguMjg0LDEwOC40NzEtMjguMjg0Yzg1LjU2MiwwLDExOS4yMjIsNjAuODgzLDExOS4yMjIsNjAuODgzCglzLTY1LjgzMywzMy42NTktNjUuODMzLDExNS4zMzFjMCw5Mi4xMzMsODIuMDEsMTIzLjg4NSw4Mi4wMSwxMjMuODg1cy01Ny4zMjgsMTYxLjM1Ny0xMzQuNzYyLDE2MS4zNTcKCWMtMzUuNTY1LDAtNjMuMjE1LTIzLjk2Ny0xMDAuNjg4LTIzLjk2N2MtMzguMTg4LDAtNzYuMDg0LDI0Ljg2MS0xMDAuNzY2LDI0Ljg2MUM4OS4zMyw2MDguNzMsMCw0NTUuNjY2LDAsMzMyLjYyOAoJYzAtMTIxLjA1Miw3NS42MTItMTg0LjU1NCwxNDYuNTMzLTE4NC41NTRDMTkyLjYzOCwxNDguMDc0LDIyOC40MTYsMTc0LjY2MiwyNTIuMzg1LDE3NC42NjJ6Ii8+Cjwvc3ZnPgo=) ![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg)

* **iOS:** UIAutomation (8.0 to 9.3)
* **Android:** UiAutomator (4.2+)

***

## appiumGetCurrentActivity[​](#appiumgetcurrentactivity "Direct link to appiumGetCurrentActivity")

Get the name of the current Android activity. This is the raw Appium protocol endpoint. Prefer the `getCurrentActivity` mobile command which provides automatic Appium 3 compatibility with fallback for older drivers.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.github.io/appium.io/docs/en/commands/device/activity/current-activity/).

caution

This protocol command is deprecated<br />Use the `getCurrentActivity` mobile command (`driver.getCurrentActivity()`) instead

### Usage[​](#usage-21 "Direct link to Usage")

```
await driver.appiumGetCurrentActivity()
```

### Returns[​](#returns-12 "Direct link to Returns")

* **\<string>** **`activity`:** Name of the current activity

### Support[​](#support-12 "Direct link to Support")

![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg)

* **Android:** UiAutomator (4.2+)

***

## appiumGetCurrentPackage[​](#appiumgetcurrentpackage "Direct link to appiumGetCurrentPackage")

Get the name of the current Android package. This is the raw Appium protocol endpoint. Prefer the `getCurrentPackage` mobile command which provides automatic Appium 3 compatibility with fallback for older drivers.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.github.io/appium.io/docs/en/commands/device/activity/current-package/).

caution

This protocol command is deprecated<br />Use the `getCurrentPackage` mobile command (`driver.getCurrentPackage()`) instead

### Usage[​](#usage-22 "Direct link to Usage")

```
await driver.appiumGetCurrentPackage()
```

### Returns[​](#returns-13 "Direct link to Returns")

* **\<string>** **`package`:** Name of the current package

### Support[​](#support-13 "Direct link to Support")

![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg)

* **Android:** UiAutomator (4.2+)

***

## installApp[​](#installapp "Direct link to installApp")

Install the given app onto the device.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.io/docs/en/latest/reference/api/appium/#installapp).

### Usage[​](#usage-23 "Direct link to Usage")

```
await driver.installApp(appPath, options)
```

### Parameters[​](#parameters-10 "Direct link to Parameters")

| Name                      | Type     | Details                              |
| ------------------------- | -------- | ------------------------------------ |
| `appPath`                 | `string` | Path to application .apk file        |
| `options`<br />*optional* | `object` | Driver-specific installation options |

### Support[​](#support-14 "Direct link to Support")

![Support for XCUITest (9.3+), UIAutomation (8.0 to 9.3)](data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iRWJlbmVfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgd2lkdGg9IjQ5Ni4yNTVweCIgaGVpZ2h0PSI2MDguNzI4cHgiIHZpZXdCb3g9IjAgMCA0OTYuMjU1IDYwOC43MjgiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQ5Ni4yNTUgNjA4LjcyODsiCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxwYXRoIHN0eWxlPSJmaWxsOiM5OTk5OTk7IiBkPSJNMjczLjgxLDUyLjk3M0MzMTMuODA2LDAuMjU3LDM2OS40MSwwLDM2OS40MSwwczguMjcxLDQ5LjU2Mi0zMS40NjMsOTcuMzA2CgljLTQyLjQyNiw1MC45OC05MC42NDksNDIuNjM4LTkwLjY0OSw0Mi42MzhTMjM4LjI0Myw5OS44NSwyNzMuODEsNTIuOTczeiIvPgo8cGF0aCBzdHlsZT0iZmlsbDojOTk5OTk5OyIgZD0iTTI1Mi4zODUsMTc0LjY2MmMyMC41NzYsMCw1OC43NjQtMjguMjg0LDEwOC40NzEtMjguMjg0Yzg1LjU2MiwwLDExOS4yMjIsNjAuODgzLDExOS4yMjIsNjAuODgzCglzLTY1LjgzMywzMy42NTktNjUuODMzLDExNS4zMzFjMCw5Mi4xMzMsODIuMDEsMTIzLjg4NSw4Mi4wMSwxMjMuODg1cy01Ny4zMjgsMTYxLjM1Ny0xMzQuNzYyLDE2MS4zNTcKCWMtMzUuNTY1LDAtNjMuMjE1LTIzLjk2Ny0xMDAuNjg4LTIzLjk2N2MtMzguMTg4LDAtNzYuMDg0LDI0Ljg2MS0xMDAuNzY2LDI0Ljg2MUM4OS4zMyw2MDguNzMsMCw0NTUuNjY2LDAsMzMyLjYyOAoJYzAtMTIxLjA1Miw3NS42MTItMTg0LjU1NCwxNDYuNTMzLTE4NC41NTRDMTkyLjYzOCwxNDguMDc0LDIyOC40MTYsMTc0LjY2MiwyNTIuMzg1LDE3NC42NjJ6Ii8+Cjwvc3ZnPgo=) ![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg)

* **iOS:** XCUITest (9.3+), UIAutomation (8.0 to 9.3)
* **Android:** UiAutomator (4.2+)

***

## activateApp[​](#activateapp "Direct link to activateApp")

Activate the given app on the device<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.io/docs/en/latest/reference/api/appium/#activateapp).

### Usage[​](#usage-24 "Direct link to Usage")

```
await driver.activateApp(appId, bundleId, options)
```

### Parameters[​](#parameters-11 "Direct link to Parameters")

| Name                       | Type     | Details                               |
| -------------------------- | -------- | ------------------------------------- |
| `appId`<br />*optional*    | `string` | App package ID (required for Android) |
| `bundleId`<br />*optional* | `string` | Bundle ID (required for iOS)          |
| `options`<br />*optional*  | `object` | Driver-specific launch options        |

### Support[​](#support-15 "Direct link to Support")

![Support for XCUITest (9.3+)](data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iRWJlbmVfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgd2lkdGg9IjQ5Ni4yNTVweCIgaGVpZ2h0PSI2MDguNzI4cHgiIHZpZXdCb3g9IjAgMCA0OTYuMjU1IDYwOC43MjgiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQ5Ni4yNTUgNjA4LjcyODsiCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxwYXRoIHN0eWxlPSJmaWxsOiM5OTk5OTk7IiBkPSJNMjczLjgxLDUyLjk3M0MzMTMuODA2LDAuMjU3LDM2OS40MSwwLDM2OS40MSwwczguMjcxLDQ5LjU2Mi0zMS40NjMsOTcuMzA2CgljLTQyLjQyNiw1MC45OC05MC42NDksNDIuNjM4LTkwLjY0OSw0Mi42MzhTMjM4LjI0Myw5OS44NSwyNzMuODEsNTIuOTczeiIvPgo8cGF0aCBzdHlsZT0iZmlsbDojOTk5OTk5OyIgZD0iTTI1Mi4zODUsMTc0LjY2MmMyMC41NzYsMCw1OC43NjQtMjguMjg0LDEwOC40NzEtMjguMjg0Yzg1LjU2MiwwLDExOS4yMjIsNjAuODgzLDExOS4yMjIsNjAuODgzCglzLTY1LjgzMywzMy42NTktNjUuODMzLDExNS4zMzFjMCw5Mi4xMzMsODIuMDEsMTIzLjg4NSw4Mi4wMSwxMjMuODg1cy01Ny4zMjgsMTYxLjM1Ny0xMzQuNzYyLDE2MS4zNTcKCWMtMzUuNTY1LDAtNjMuMjE1LTIzLjk2Ny0xMDAuNjg4LTIzLjk2N2MtMzguMTg4LDAtNzYuMDg0LDI0Ljg2MS0xMDAuNzY2LDI0Ljg2MUM4OS4zMyw2MDguNzMsMCw0NTUuNjY2LDAsMzMyLjYyOAoJYzAtMTIxLjA1Miw3NS42MTItMTg0LjU1NCwxNDYuNTMzLTE4NC41NTRDMTkyLjYzOCwxNDguMDc0LDIyOC40MTYsMTc0LjY2MiwyNTIuMzg1LDE3NC42NjJ6Ii8+Cjwvc3ZnPgo=) ![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg)

* **iOS:** XCUITest (9.3+)
* **Android:** UiAutomator (4.2+)

***

## removeApp[​](#removeapp "Direct link to removeApp")

Remove an app from the device.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.io/docs/en/latest/reference/api/appium/#removeapp).

### Usage[​](#usage-25 "Direct link to Usage")

```
await driver.removeApp(appId, bundleId, options)
```

### Parameters[​](#parameters-12 "Direct link to Parameters")

| Name                       | Type     | Details                               |
| -------------------------- | -------- | ------------------------------------- |
| `appId`<br />*optional*    | `string` | App package ID (required for Android) |
| `bundleId`<br />*optional* | `string` | Bundle ID (required for iOS)          |
| `options`<br />*optional*  | `object` | Driver-specific uninstall options     |

### Returns[​](#returns-14 "Direct link to Returns")

* **\<boolean>** **`didRemovalSucceed`:** Return true if uninstall was successful, false if not

### Support[​](#support-16 "Direct link to Support")

![Support for XCUITest (9.3+), UIAutomation (8.0 to 9.3)](data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iRWJlbmVfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgd2lkdGg9IjQ5Ni4yNTVweCIgaGVpZ2h0PSI2MDguNzI4cHgiIHZpZXdCb3g9IjAgMCA0OTYuMjU1IDYwOC43MjgiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQ5Ni4yNTUgNjA4LjcyODsiCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxwYXRoIHN0eWxlPSJmaWxsOiM5OTk5OTk7IiBkPSJNMjczLjgxLDUyLjk3M0MzMTMuODA2LDAuMjU3LDM2OS40MSwwLDM2OS40MSwwczguMjcxLDQ5LjU2Mi0zMS40NjMsOTcuMzA2CgljLTQyLjQyNiw1MC45OC05MC42NDksNDIuNjM4LTkwLjY0OSw0Mi42MzhTMjM4LjI0Myw5OS44NSwyNzMuODEsNTIuOTczeiIvPgo8cGF0aCBzdHlsZT0iZmlsbDojOTk5OTk5OyIgZD0iTTI1Mi4zODUsMTc0LjY2MmMyMC41NzYsMCw1OC43NjQtMjguMjg0LDEwOC40NzEtMjguMjg0Yzg1LjU2MiwwLDExOS4yMjIsNjAuODgzLDExOS4yMjIsNjAuODgzCglzLTY1LjgzMywzMy42NTktNjUuODMzLDExNS4zMzFjMCw5Mi4xMzMsODIuMDEsMTIzLjg4NSw4Mi4wMSwxMjMuODg1cy01Ny4zMjgsMTYxLjM1Ny0xMzQuNzYyLDE2MS4zNTcKCWMtMzUuNTY1LDAtNjMuMjE1LTIzLjk2Ny0xMDAuNjg4LTIzLjk2N2MtMzguMTg4LDAtNzYuMDg0LDI0Ljg2MS0xMDAuNzY2LDI0Ljg2MUM4OS4zMyw2MDguNzMsMCw0NTUuNjY2LDAsMzMyLjYyOAoJYzAtMTIxLjA1Miw3NS42MTItMTg0LjU1NCwxNDYuNTMzLTE4NC41NTRDMTkyLjYzOCwxNDguMDc0LDIyOC40MTYsMTc0LjY2MiwyNTIuMzg1LDE3NC42NjJ6Ii8+Cjwvc3ZnPgo=) ![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg)

* **iOS:** XCUITest (9.3+), UIAutomation (8.0 to 9.3)
* **Android:** UiAutomator (4.2+)

***

## terminateApp[​](#terminateapp "Direct link to terminateApp")

Terminate the given app on the device<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.io/docs/en/latest/reference/api/appium/#terminateapp).

### Usage[​](#usage-26 "Direct link to Usage")

```
await driver.terminateApp(appId, bundleId, options)
```

### Parameters[​](#parameters-13 "Direct link to Parameters")

| Name                       | Type     | Details                               |
| -------------------------- | -------- | ------------------------------------- |
| `appId`<br />*optional*    | `string` | App package ID (required for Android) |
| `bundleId`<br />*optional* | `string` | Bundle ID (required for iOS)          |
| `options`<br />*optional*  | `object` | Driver-specific termination options   |

### Support[​](#support-17 "Direct link to Support")

![Support for XCUITest (9.3+)](data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iRWJlbmVfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgd2lkdGg9IjQ5Ni4yNTVweCIgaGVpZ2h0PSI2MDguNzI4cHgiIHZpZXdCb3g9IjAgMCA0OTYuMjU1IDYwOC43MjgiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQ5Ni4yNTUgNjA4LjcyODsiCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxwYXRoIHN0eWxlPSJmaWxsOiM5OTk5OTk7IiBkPSJNMjczLjgxLDUyLjk3M0MzMTMuODA2LDAuMjU3LDM2OS40MSwwLDM2OS40MSwwczguMjcxLDQ5LjU2Mi0zMS40NjMsOTcuMzA2CgljLTQyLjQyNiw1MC45OC05MC42NDksNDIuNjM4LTkwLjY0OSw0Mi42MzhTMjM4LjI0Myw5OS44NSwyNzMuODEsNTIuOTczeiIvPgo8cGF0aCBzdHlsZT0iZmlsbDojOTk5OTk5OyIgZD0iTTI1Mi4zODUsMTc0LjY2MmMyMC41NzYsMCw1OC43NjQtMjguMjg0LDEwOC40NzEtMjguMjg0Yzg1LjU2MiwwLDExOS4yMjIsNjAuODgzLDExOS4yMjIsNjAuODgzCglzLTY1LjgzMywzMy42NTktNjUuODMzLDExNS4zMzFjMCw5Mi4xMzMsODIuMDEsMTIzLjg4NSw4Mi4wMSwxMjMuODg1cy01Ny4zMjgsMTYxLjM1Ny0xMzQuNzYyLDE2MS4zNTcKCWMtMzUuNTY1LDAtNjMuMjE1LTIzLjk2Ny0xMDAuNjg4LTIzLjk2N2MtMzguMTg4LDAtNzYuMDg0LDI0Ljg2MS0xMDAuNzY2LDI0Ljg2MUM4OS4zMyw2MDguNzMsMCw0NTUuNjY2LDAsMzMyLjYyOAoJYzAtMTIxLjA1Miw3NS42MTItMTg0LjU1NCwxNDYuNTMzLTE4NC41NTRDMTkyLjYzOCwxNDguMDc0LDIyOC40MTYsMTc0LjY2MiwyNTIuMzg1LDE3NC42NjJ6Ii8+Cjwvc3ZnPgo=) ![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg)

* **iOS:** XCUITest (9.3+)
* **Android:** UiAutomator (4.2+)

***

## isAppInstalled[​](#isappinstalled "Direct link to isAppInstalled")

Check whether the specified app is installed on the device.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.io/docs/en/latest/reference/api/appium/#isappinstalled).

### Usage[​](#usage-27 "Direct link to Usage")

```
await driver.isAppInstalled(appId, bundleId)
```

### Parameters[​](#parameters-14 "Direct link to Parameters")

| Name                       | Type     | Details                               |
| -------------------------- | -------- | ------------------------------------- |
| `appId`<br />*optional*    | `string` | App package ID (required for Android) |
| `bundleId`<br />*optional* | `string` | Bundle ID (required for iOS)          |

### Returns[​](#returns-15 "Direct link to Returns")

* **\<boolean>** **`isAppInstalled`:** Return true if installed, false if not

### Support[​](#support-18 "Direct link to Support")

![Support for XCUITest (9.3+), UIAutomation (8.0 to 9.3)](data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iRWJlbmVfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgd2lkdGg9IjQ5Ni4yNTVweCIgaGVpZ2h0PSI2MDguNzI4cHgiIHZpZXdCb3g9IjAgMCA0OTYuMjU1IDYwOC43MjgiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQ5Ni4yNTUgNjA4LjcyODsiCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxwYXRoIHN0eWxlPSJmaWxsOiM5OTk5OTk7IiBkPSJNMjczLjgxLDUyLjk3M0MzMTMuODA2LDAuMjU3LDM2OS40MSwwLDM2OS40MSwwczguMjcxLDQ5LjU2Mi0zMS40NjMsOTcuMzA2CgljLTQyLjQyNiw1MC45OC05MC42NDksNDIuNjM4LTkwLjY0OSw0Mi42MzhTMjM4LjI0Myw5OS44NSwyNzMuODEsNTIuOTczeiIvPgo8cGF0aCBzdHlsZT0iZmlsbDojOTk5OTk5OyIgZD0iTTI1Mi4zODUsMTc0LjY2MmMyMC41NzYsMCw1OC43NjQtMjguMjg0LDEwOC40NzEtMjguMjg0Yzg1LjU2MiwwLDExOS4yMjIsNjAuODgzLDExOS4yMjIsNjAuODgzCglzLTY1LjgzMywzMy42NTktNjUuODMzLDExNS4zMzFjMCw5Mi4xMzMsODIuMDEsMTIzLjg4NSw4Mi4wMSwxMjMuODg1cy01Ny4zMjgsMTYxLjM1Ny0xMzQuNzYyLDE2MS4zNTcKCWMtMzUuNTY1LDAtNjMuMjE1LTIzLjk2Ny0xMDAuNjg4LTIzLjk2N2MtMzguMTg4LDAtNzYuMDg0LDI0Ljg2MS0xMDAuNzY2LDI0Ljg2MUM4OS4zMyw2MDguNzMsMCw0NTUuNjY2LDAsMzMyLjYyOAoJYzAtMTIxLjA1Miw3NS42MTItMTg0LjU1NCwxNDYuNTMzLTE4NC41NTRDMTkyLjYzOCwxNDguMDc0LDIyOC40MTYsMTc0LjY2MiwyNTIuMzg1LDE3NC42NjJ6Ii8+Cjwvc3ZnPgo=) ![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg)

* **iOS:** XCUITest (9.3+), UIAutomation (8.0 to 9.3)
* **Android:** UiAutomator (4.2+)

***

## queryAppState[​](#queryappstate "Direct link to queryAppState")

Get the given app status on the device<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.io/docs/en/latest/reference/api/appium/#queryappstate).

### Usage[​](#usage-28 "Direct link to Usage")

```
await driver.queryAppState(appId, bundleId)
```

### Parameters[​](#parameters-15 "Direct link to Parameters")

| Name                       | Type     | Details                               |
| -------------------------- | -------- | ------------------------------------- |
| `appId`<br />*optional*    | `string` | App package ID (required for Android) |
| `bundleId`<br />*optional* | `string` | Bundle ID (required for iOS)          |

### Returns[​](#returns-16 "Direct link to Returns")

* **\<number>** **`appStatus`:** 0 is not installed. 1 is not running. 2 is running in background suspended. 3 is running in background. 4 is running in foreground

### Support[​](#support-19 "Direct link to Support")

![Support for XCUITest (9.3+)](data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iRWJlbmVfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgd2lkdGg9IjQ5Ni4yNTVweCIgaGVpZ2h0PSI2MDguNzI4cHgiIHZpZXdCb3g9IjAgMCA0OTYuMjU1IDYwOC43MjgiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQ5Ni4yNTUgNjA4LjcyODsiCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxwYXRoIHN0eWxlPSJmaWxsOiM5OTk5OTk7IiBkPSJNMjczLjgxLDUyLjk3M0MzMTMuODA2LDAuMjU3LDM2OS40MSwwLDM2OS40MSwwczguMjcxLDQ5LjU2Mi0zMS40NjMsOTcuMzA2CgljLTQyLjQyNiw1MC45OC05MC42NDksNDIuNjM4LTkwLjY0OSw0Mi42MzhTMjM4LjI0Myw5OS44NSwyNzMuODEsNTIuOTczeiIvPgo8cGF0aCBzdHlsZT0iZmlsbDojOTk5OTk5OyIgZD0iTTI1Mi4zODUsMTc0LjY2MmMyMC41NzYsMCw1OC43NjQtMjguMjg0LDEwOC40NzEtMjguMjg0Yzg1LjU2MiwwLDExOS4yMjIsNjAuODgzLDExOS4yMjIsNjAuODgzCglzLTY1LjgzMywzMy42NTktNjUuODMzLDExNS4zMzFjMCw5Mi4xMzMsODIuMDEsMTIzLjg4NSw4Mi4wMSwxMjMuODg1cy01Ny4zMjgsMTYxLjM1Ny0xMzQuNzYyLDE2MS4zNTcKCWMtMzUuNTY1LDAtNjMuMjE1LTIzLjk2Ny0xMDAuNjg4LTIzLjk2N2MtMzguMTg4LDAtNzYuMDg0LDI0Ljg2MS0xMDAuNzY2LDI0Ljg2MUM4OS4zMyw2MDguNzMsMCw0NTUuNjY2LDAsMzMyLjYyOAoJYzAtMTIxLjA1Miw3NS42MTItMTg0LjU1NCwxNDYuNTMzLTE4NC41NTRDMTkyLjYzOCwxNDguMDc0LDIyOC40MTYsMTc0LjY2MiwyNTIuMzg1LDE3NC42NjJ6Ii8+Cjwvc3ZnPgo=) ![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg)

* **iOS:** XCUITest (9.3+)
* **Android:** UiAutomator (4.2+)

***

## hideKeyboard[​](#hidekeyboard "Direct link to hideKeyboard")

Hide soft keyboard.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.io/docs/en/latest/reference/api/appium/#hidekeyboard).

### Usage[​](#usage-29 "Direct link to Usage")

```
await driver.hideKeyboard(strategy, key, keyCode, keyName)
```

### Parameters[​](#parameters-16 "Direct link to Parameters")

| Name                       | Type     | Details                                                                                                                                |
| -------------------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| `strategy`<br />*optional* | `string` | hide keyboard strategy (UIAutomation only), available strategies - 'press', 'pressKey', 'swipeDown', 'tapOut', 'tapOutside', 'default' |
| `key`<br />*optional*      | `string` | key value if strategy is 'pressKey'                                                                                                    |
| `keyCode`<br />*optional*  | `string` | key code if strategy is 'pressKey'                                                                                                     |
| `keyName`<br />*optional*  | `string` | key name if strategy is 'pressKey'                                                                                                     |

### Support[​](#support-20 "Direct link to Support")

![Support for XCUITest (9.3+), UIAutomation (8.0 to 9.3)](data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iRWJlbmVfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgd2lkdGg9IjQ5Ni4yNTVweCIgaGVpZ2h0PSI2MDguNzI4cHgiIHZpZXdCb3g9IjAgMCA0OTYuMjU1IDYwOC43MjgiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQ5Ni4yNTUgNjA4LjcyODsiCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxwYXRoIHN0eWxlPSJmaWxsOiM5OTk5OTk7IiBkPSJNMjczLjgxLDUyLjk3M0MzMTMuODA2LDAuMjU3LDM2OS40MSwwLDM2OS40MSwwczguMjcxLDQ5LjU2Mi0zMS40NjMsOTcuMzA2CgljLTQyLjQyNiw1MC45OC05MC42NDksNDIuNjM4LTkwLjY0OSw0Mi42MzhTMjM4LjI0Myw5OS44NSwyNzMuODEsNTIuOTczeiIvPgo8cGF0aCBzdHlsZT0iZmlsbDojOTk5OTk5OyIgZD0iTTI1Mi4zODUsMTc0LjY2MmMyMC41NzYsMCw1OC43NjQtMjguMjg0LDEwOC40NzEtMjguMjg0Yzg1LjU2MiwwLDExOS4yMjIsNjAuODgzLDExOS4yMjIsNjAuODgzCglzLTY1LjgzMywzMy42NTktNjUuODMzLDExNS4zMzFjMCw5Mi4xMzMsODIuMDEsMTIzLjg4NSw4Mi4wMSwxMjMuODg1cy01Ny4zMjgsMTYxLjM1Ny0xMzQuNzYyLDE2MS4zNTcKCWMtMzUuNTY1LDAtNjMuMjE1LTIzLjk2Ny0xMDAuNjg4LTIzLjk2N2MtMzguMTg4LDAtNzYuMDg0LDI0Ljg2MS0xMDAuNzY2LDI0Ljg2MUM4OS4zMyw2MDguNzMsMCw0NTUuNjY2LDAsMzMyLjYyOAoJYzAtMTIxLjA1Miw3NS42MTItMTg0LjU1NCwxNDYuNTMzLTE4NC41NTRDMTkyLjYzOCwxNDguMDc0LDIyOC40MTYsMTc0LjY2MiwyNTIuMzg1LDE3NC42NjJ6Ii8+Cjwvc3ZnPgo=) ![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg) ![Support for Windows (10+)](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA4OCA4OCI+PHBhdGggZD0ibTAgMTIuNDAyIDM1LjY4Ny00Ljg2MDIuMDE1NiAzNC40MjMtMzUuNjcuMjAzMTN6bTM1LjY3IDMzLjUyOS4wMjc3IDM0LjQ1My0zNS42Ny00LjkwNDEtLjAwMi0yOS43OHptNC4zMjYxLTM5LjAyNSA0Ny4zMTgtNi45MDZ2NDEuNTI3bC00Ny4zMTguMzc1NjV6bTQ3LjMyOSAzOS4zNDktLjAxMTEgNDEuMzQtNDcuMzE4LTYuNjc4NC0uMDY2My0zNC43Mzl6IiBmaWxsPSIjMDBhZGVmIi8+PC9zdmc+)

* **iOS:** XCUITest (9.3+), UIAutomation (8.0 to 9.3)
* **Android:** UiAutomator (4.2+)
* **Windows:** Windows (10+)

***

## isKeyboardShown[​](#iskeyboardshown "Direct link to isKeyboardShown")

Whether or not the soft keyboard is shown.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.io/docs/en/latest/reference/api/appium/#iskeyboardshown).

### Usage[​](#usage-30 "Direct link to Usage")

```
await driver.isKeyboardShown()
```

### Returns[​](#returns-17 "Direct link to Returns")

* **\<boolean>** **`isKeyboardShown`:** True if the keyboard is shown

### Support[​](#support-21 "Direct link to Support")

![Support for XCUITest (9.3+), UIAutomation (8.0 to 9.3)](data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iRWJlbmVfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgd2lkdGg9IjQ5Ni4yNTVweCIgaGVpZ2h0PSI2MDguNzI4cHgiIHZpZXdCb3g9IjAgMCA0OTYuMjU1IDYwOC43MjgiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQ5Ni4yNTUgNjA4LjcyODsiCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxwYXRoIHN0eWxlPSJmaWxsOiM5OTk5OTk7IiBkPSJNMjczLjgxLDUyLjk3M0MzMTMuODA2LDAuMjU3LDM2OS40MSwwLDM2OS40MSwwczguMjcxLDQ5LjU2Mi0zMS40NjMsOTcuMzA2CgljLTQyLjQyNiw1MC45OC05MC42NDksNDIuNjM4LTkwLjY0OSw0Mi42MzhTMjM4LjI0Myw5OS44NSwyNzMuODEsNTIuOTczeiIvPgo8cGF0aCBzdHlsZT0iZmlsbDojOTk5OTk5OyIgZD0iTTI1Mi4zODUsMTc0LjY2MmMyMC41NzYsMCw1OC43NjQtMjguMjg0LDEwOC40NzEtMjguMjg0Yzg1LjU2MiwwLDExOS4yMjIsNjAuODgzLDExOS4yMjIsNjAuODgzCglzLTY1LjgzMywzMy42NTktNjUuODMzLDExNS4zMzFjMCw5Mi4xMzMsODIuMDEsMTIzLjg4NSw4Mi4wMSwxMjMuODg1cy01Ny4zMjgsMTYxLjM1Ny0xMzQuNzYyLDE2MS4zNTcKCWMtMzUuNTY1LDAtNjMuMjE1LTIzLjk2Ny0xMDAuNjg4LTIzLjk2N2MtMzguMTg4LDAtNzYuMDg0LDI0Ljg2MS0xMDAuNzY2LDI0Ljg2MUM4OS4zMyw2MDguNzMsMCw0NTUuNjY2LDAsMzMyLjYyOAoJYzAtMTIxLjA1Miw3NS42MTItMTg0LjU1NCwxNDYuNTMzLTE4NC41NTRDMTkyLjYzOCwxNDguMDc0LDIyOC40MTYsMTc0LjY2MiwyNTIuMzg1LDE3NC42NjJ6Ii8+Cjwvc3ZnPgo=) ![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg) ![Support for Windows (10+)](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA4OCA4OCI+PHBhdGggZD0ibTAgMTIuNDAyIDM1LjY4Ny00Ljg2MDIuMDE1NiAzNC40MjMtMzUuNjcuMjAzMTN6bTM1LjY3IDMzLjUyOS4wMjc3IDM0LjQ1My0zNS42Ny00LjkwNDEtLjAwMi0yOS43OHptNC4zMjYxLTM5LjAyNSA0Ny4zMTgtNi45MDZ2NDEuNTI3bC00Ny4zMTguMzc1NjV6bTQ3LjMyOSAzOS4zNDktLjAxMTEgNDEuMzQtNDcuMzE4LTYuNjc4NC0uMDY2My0zNC43Mzl6IiBmaWxsPSIjMDBhZGVmIi8+PC9zdmc+)

* **iOS:** XCUITest (9.3+), UIAutomation (8.0 to 9.3)
* **Android:** UiAutomator (4.2+)
* **Windows:** Windows (10+)

***

## pushFile[​](#pushfile "Direct link to pushFile")

Place a file onto the device in a particular place.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.io/docs/en/latest/reference/api/appium/#pushfile).

### Usage[​](#usage-31 "Direct link to Usage")

```
await driver.pushFile(path, data)
```

### Parameters[​](#parameters-17 "Direct link to Parameters")

| Name   | Type     | Details                     |
| ------ | -------- | --------------------------- |
| `path` | `string` | path to install the data to |
| `data` | `string` | contents of file in base64  |

### Support[​](#support-22 "Direct link to Support")

![Support for XCUITest (9.3+), UIAutomation (8.0 to 9.3)](data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iRWJlbmVfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgd2lkdGg9IjQ5Ni4yNTVweCIgaGVpZ2h0PSI2MDguNzI4cHgiIHZpZXdCb3g9IjAgMCA0OTYuMjU1IDYwOC43MjgiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQ5Ni4yNTUgNjA4LjcyODsiCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxwYXRoIHN0eWxlPSJmaWxsOiM5OTk5OTk7IiBkPSJNMjczLjgxLDUyLjk3M0MzMTMuODA2LDAuMjU3LDM2OS40MSwwLDM2OS40MSwwczguMjcxLDQ5LjU2Mi0zMS40NjMsOTcuMzA2CgljLTQyLjQyNiw1MC45OC05MC42NDksNDIuNjM4LTkwLjY0OSw0Mi42MzhTMjM4LjI0Myw5OS44NSwyNzMuODEsNTIuOTczeiIvPgo8cGF0aCBzdHlsZT0iZmlsbDojOTk5OTk5OyIgZD0iTTI1Mi4zODUsMTc0LjY2MmMyMC41NzYsMCw1OC43NjQtMjguMjg0LDEwOC40NzEtMjguMjg0Yzg1LjU2MiwwLDExOS4yMjIsNjAuODgzLDExOS4yMjIsNjAuODgzCglzLTY1LjgzMywzMy42NTktNjUuODMzLDExNS4zMzFjMCw5Mi4xMzMsODIuMDEsMTIzLjg4NSw4Mi4wMSwxMjMuODg1cy01Ny4zMjgsMTYxLjM1Ny0xMzQuNzYyLDE2MS4zNTcKCWMtMzUuNTY1LDAtNjMuMjE1LTIzLjk2Ny0xMDAuNjg4LTIzLjk2N2MtMzguMTg4LDAtNzYuMDg0LDI0Ljg2MS0xMDAuNzY2LDI0Ljg2MUM4OS4zMyw2MDguNzMsMCw0NTUuNjY2LDAsMzMyLjYyOAoJYzAtMTIxLjA1Miw3NS42MTItMTg0LjU1NCwxNDYuNTMzLTE4NC41NTRDMTkyLjYzOCwxNDguMDc0LDIyOC40MTYsMTc0LjY2MiwyNTIuMzg1LDE3NC42NjJ6Ii8+Cjwvc3ZnPgo=) ![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg) ![Support for Windows (10+)](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA4OCA4OCI+PHBhdGggZD0ibTAgMTIuNDAyIDM1LjY4Ny00Ljg2MDIuMDE1NiAzNC40MjMtMzUuNjcuMjAzMTN6bTM1LjY3IDMzLjUyOS4wMjc3IDM0LjQ1My0zNS42Ny00LjkwNDEtLjAwMi0yOS43OHptNC4zMjYxLTM5LjAyNSA0Ny4zMTgtNi45MDZ2NDEuNTI3bC00Ny4zMTguMzc1NjV6bTQ3LjMyOSAzOS4zNDktLjAxMTEgNDEuMzQtNDcuMzE4LTYuNjc4NC0uMDY2My0zNC43Mzl6IiBmaWxsPSIjMDBhZGVmIi8+PC9zdmc+)

* **iOS:** XCUITest (9.3+), UIAutomation (8.0 to 9.3)
* **Android:** UiAutomator (4.2+)
* **Windows:** Windows (10+)

***

## pullFile[​](#pullfile "Direct link to pullFile")

Retrieve a file from the device's file system.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.io/docs/en/latest/reference/api/appium/#pullfile).

### Usage[​](#usage-32 "Direct link to Usage")

```
await driver.pullFile(path)
```

### Parameters[​](#parameters-18 "Direct link to Parameters")

| Name   | Type     | Details                              |
| ------ | -------- | ------------------------------------ |
| `path` | `string` | path on the device to pull file from |

### Returns[​](#returns-18 "Direct link to Returns")

* **\<string>** **`response`:** Contents of file in base64

### Support[​](#support-23 "Direct link to Support")

![Support for XCUITest (9.3+), UIAutomation (8.0 to 9.3)](data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iRWJlbmVfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgd2lkdGg9IjQ5Ni4yNTVweCIgaGVpZ2h0PSI2MDguNzI4cHgiIHZpZXdCb3g9IjAgMCA0OTYuMjU1IDYwOC43MjgiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQ5Ni4yNTUgNjA4LjcyODsiCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxwYXRoIHN0eWxlPSJmaWxsOiM5OTk5OTk7IiBkPSJNMjczLjgxLDUyLjk3M0MzMTMuODA2LDAuMjU3LDM2OS40MSwwLDM2OS40MSwwczguMjcxLDQ5LjU2Mi0zMS40NjMsOTcuMzA2CgljLTQyLjQyNiw1MC45OC05MC42NDksNDIuNjM4LTkwLjY0OSw0Mi42MzhTMjM4LjI0Myw5OS44NSwyNzMuODEsNTIuOTczeiIvPgo8cGF0aCBzdHlsZT0iZmlsbDojOTk5OTk5OyIgZD0iTTI1Mi4zODUsMTc0LjY2MmMyMC41NzYsMCw1OC43NjQtMjguMjg0LDEwOC40NzEtMjguMjg0Yzg1LjU2MiwwLDExOS4yMjIsNjAuODgzLDExOS4yMjIsNjAuODgzCglzLTY1LjgzMywzMy42NTktNjUuODMzLDExNS4zMzFjMCw5Mi4xMzMsODIuMDEsMTIzLjg4NSw4Mi4wMSwxMjMuODg1cy01Ny4zMjgsMTYxLjM1Ny0xMzQuNzYyLDE2MS4zNTcKCWMtMzUuNTY1LDAtNjMuMjE1LTIzLjk2Ny0xMDAuNjg4LTIzLjk2N2MtMzguMTg4LDAtNzYuMDg0LDI0Ljg2MS0xMDAuNzY2LDI0Ljg2MUM4OS4zMyw2MDguNzMsMCw0NTUuNjY2LDAsMzMyLjYyOAoJYzAtMTIxLjA1Miw3NS42MTItMTg0LjU1NCwxNDYuNTMzLTE4NC41NTRDMTkyLjYzOCwxNDguMDc0LDIyOC40MTYsMTc0LjY2MiwyNTIuMzg1LDE3NC42NjJ6Ii8+Cjwvc3ZnPgo=) ![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg) ![Support for Windows (10+)](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA4OCA4OCI+PHBhdGggZD0ibTAgMTIuNDAyIDM1LjY4Ny00Ljg2MDIuMDE1NiAzNC40MjMtMzUuNjcuMjAzMTN6bTM1LjY3IDMzLjUyOS4wMjc3IDM0LjQ1My0zNS42Ny00LjkwNDEtLjAwMi0yOS43OHptNC4zMjYxLTM5LjAyNSA0Ny4zMTgtNi45MDZ2NDEuNTI3bC00Ny4zMTguMzc1NjV6bTQ3LjMyOSAzOS4zNDktLjAxMTEgNDEuMzQtNDcuMzE4LTYuNjc4NC0uMDY2My0zNC43Mzl6IiBmaWxsPSIjMDBhZGVmIi8+PC9zdmc+)

* **iOS:** XCUITest (9.3+), UIAutomation (8.0 to 9.3)
* **Android:** UiAutomator (4.2+)
* **Windows:** Windows (10+)

***

## pullFolder[​](#pullfolder "Direct link to pullFolder")

Retrieve a folder from the device's file system.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.io/docs/en/latest/reference/api/appium/#pullfolder).

### Usage[​](#usage-33 "Direct link to Usage")

```
await driver.pullFolder(path)
```

### Parameters[​](#parameters-19 "Direct link to Parameters")

| Name   | Type     | Details                                |
| ------ | -------- | -------------------------------------- |
| `path` | `string` | path to an entire folder on the device |

### Returns[​](#returns-19 "Direct link to Returns")

* **\<string>** **`response`:** Zip file of the folder contents in base64

### Support[​](#support-24 "Direct link to Support")

![Support for XCUITest (9.3+), UIAutomation (8.0 to 9.3)](data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iRWJlbmVfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgd2lkdGg9IjQ5Ni4yNTVweCIgaGVpZ2h0PSI2MDguNzI4cHgiIHZpZXdCb3g9IjAgMCA0OTYuMjU1IDYwOC43MjgiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQ5Ni4yNTUgNjA4LjcyODsiCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxwYXRoIHN0eWxlPSJmaWxsOiM5OTk5OTk7IiBkPSJNMjczLjgxLDUyLjk3M0MzMTMuODA2LDAuMjU3LDM2OS40MSwwLDM2OS40MSwwczguMjcxLDQ5LjU2Mi0zMS40NjMsOTcuMzA2CgljLTQyLjQyNiw1MC45OC05MC42NDksNDIuNjM4LTkwLjY0OSw0Mi42MzhTMjM4LjI0Myw5OS44NSwyNzMuODEsNTIuOTczeiIvPgo8cGF0aCBzdHlsZT0iZmlsbDojOTk5OTk5OyIgZD0iTTI1Mi4zODUsMTc0LjY2MmMyMC41NzYsMCw1OC43NjQtMjguMjg0LDEwOC40NzEtMjguMjg0Yzg1LjU2MiwwLDExOS4yMjIsNjAuODgzLDExOS4yMjIsNjAuODgzCglzLTY1LjgzMywzMy42NTktNjUuODMzLDExNS4zMzFjMCw5Mi4xMzMsODIuMDEsMTIzLjg4NSw4Mi4wMSwxMjMuODg1cy01Ny4zMjgsMTYxLjM1Ny0xMzQuNzYyLDE2MS4zNTcKCWMtMzUuNTY1LDAtNjMuMjE1LTIzLjk2Ny0xMDAuNjg4LTIzLjk2N2MtMzguMTg4LDAtNzYuMDg0LDI0Ljg2MS0xMDAuNzY2LDI0Ljg2MUM4OS4zMyw2MDguNzMsMCw0NTUuNjY2LDAsMzMyLjYyOAoJYzAtMTIxLjA1Miw3NS42MTItMTg0LjU1NCwxNDYuNTMzLTE4NC41NTRDMTkyLjYzOCwxNDguMDc0LDIyOC40MTYsMTc0LjY2MiwyNTIuMzg1LDE3NC42NjJ6Ii8+Cjwvc3ZnPgo=) ![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg) ![Support for Windows (10+)](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA4OCA4OCI+PHBhdGggZD0ibTAgMTIuNDAyIDM1LjY4Ny00Ljg2MDIuMDE1NiAzNC40MjMtMzUuNjcuMjAzMTN6bTM1LjY3IDMzLjUyOS4wMjc3IDM0LjQ1My0zNS42Ny00LjkwNDEtLjAwMi0yOS43OHptNC4zMjYxLTM5LjAyNSA0Ny4zMTgtNi45MDZ2NDEuNTI3bC00Ny4zMTguMzc1NjV6bTQ3LjMyOSAzOS4zNDktLjAxMTEgNDEuMzQtNDcuMzE4LTYuNjc4NC0uMDY2My0zNC43Mzl6IiBmaWxsPSIjMDBhZGVmIi8+PC9zdmc+)

* **iOS:** XCUITest (9.3+), UIAutomation (8.0 to 9.3)
* **Android:** UiAutomator (4.2+)
* **Windows:** Windows (10+)

***

## appiumToggleAirplaneMode[​](#appiumtoggleairplanemode "Direct link to appiumToggleAirplaneMode")

Toggle airplane mode on device. This is the raw Appium protocol endpoint. Prefer the `toggleAirplaneMode` mobile command which provides automatic Appium 3 compatibility with fallback for older drivers.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.github.io/appium.io/docs/en/commands/device/network/toggle-airplane-mode/).

caution

This protocol command is deprecated<br />Use the `toggleAirplaneMode` mobile command (`driver.toggleAirplaneMode()`) instead

### Usage[​](#usage-34 "Direct link to Usage")

```
await driver.appiumToggleAirplaneMode()
```

### Support[​](#support-25 "Direct link to Support")

![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg)

* **Android:** UiAutomator (4.2+)

***

## appiumToggleData[​](#appiumtoggledata "Direct link to appiumToggleData")

Switch the state of data service. This is the raw Appium protocol endpoint. Prefer the `toggleData` mobile command which provides automatic Appium 3 compatibility with fallback for older drivers.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.github.io/appium.io/docs/en/commands/device/network/toggle-data/).

caution

This protocol command is deprecated<br />Use the `toggleData` mobile command (`driver.toggleData()`) instead

### Usage[​](#usage-35 "Direct link to Usage")

```
await driver.appiumToggleData()
```

### Support[​](#support-26 "Direct link to Support")

![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg)

* **Android:** UiAutomator (4.2+)

***

## appiumToggleWiFi[​](#appiumtogglewifi "Direct link to appiumToggleWiFi")

Switch the state of the wifi service. This is the raw Appium protocol endpoint. Prefer the `toggleWiFi` mobile command which provides automatic Appium 3 compatibility with fallback for older drivers.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.github.io/appium.io/docs/en/commands/device/network/toggle-wifi/).

caution

This protocol command is deprecated<br />Use the `toggleWiFi` mobile command (`driver.toggleWiFi()`) instead

### Usage[​](#usage-36 "Direct link to Usage")

```
await driver.appiumToggleWiFi()
```

### Support[​](#support-27 "Direct link to Support")

![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg)

* **Android:** UiAutomator (4.2+)

***

## appiumToggleLocationServices[​](#appiumtogglelocationservices "Direct link to appiumToggleLocationServices")

Switch the state of the location service. This is the raw Appium protocol endpoint. Prefer the `toggleLocationServices` mobile command which provides automatic Appium 3 compatibility with fallback for older drivers.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.github.io/appium.io/docs/en/commands/device/network/toggle-location-services/).

caution

This protocol command is deprecated<br />Use the `toggleLocationServices` mobile command (`driver.toggleLocationServices()`) instead

### Usage[​](#usage-37 "Direct link to Usage")

```
await driver.appiumToggleLocationServices()
```

### Support[​](#support-28 "Direct link to Support")

![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg)

* **Android:** UiAutomator (4.2+)

***

## appiumToggleNetworkSpeed[​](#appiumtogglenetworkspeed "Direct link to appiumToggleNetworkSpeed")

Set network speed (Emulator only). This is the raw Appium protocol endpoint. Prefer the `toggleNetworkSpeed` mobile command which provides automatic Appium 3 compatibility with fallback for older drivers.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.github.io/appium.io/docs/en/commands/device/network/network-speed/).

caution

This protocol command is deprecated<br />Use the `toggleNetworkSpeed` mobile command (`driver.toggleNetworkSpeed()`) instead

### Usage[​](#usage-38 "Direct link to Usage")

```
await driver.appiumToggleNetworkSpeed(netspeed)
```

### Parameters[​](#parameters-20 "Direct link to Parameters")

| Name       | Type     | Details                                                                              |
| ---------- | -------- | ------------------------------------------------------------------------------------ |
| `netspeed` | `string` | Network type - 'full','gsm', 'edge', 'hscsd', 'gprs', 'umts', 'hsdpa', 'lte', 'evdo' |

### Support[​](#support-29 "Direct link to Support")

![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg)

* **Android:** UiAutomator (4.2+)

***

## appiumOpenNotifications[​](#appiumopennotifications "Direct link to appiumOpenNotifications")

Open Android notifications. This is the raw Appium protocol endpoint. Prefer the `openNotifications` mobile command which provides automatic Appium 3 compatibility with fallback for older drivers.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.github.io/appium.io/docs/en/commands/device/system/open-notifications/).

caution

This protocol command is deprecated<br />Use the `openNotifications` mobile command (`driver.openNotifications()`) instead

### Usage[​](#usage-39 "Direct link to Usage")

```
await driver.appiumOpenNotifications()
```

### Support[​](#support-30 "Direct link to Support")

![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg)

* **Android:** UiAutomator (4.2+)

***

## appiumStartActivity[​](#appiumstartactivity "Direct link to appiumStartActivity")

Start an Android activity by providing package name and activity name. This is the raw Appium protocol endpoint. Prefer the `startActivity` mobile command which provides automatic Appium 3 compatibility with fallback for older drivers.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.github.io/appium.io/docs/en/commands/device/activity/start-activity/).

caution

This protocol command is deprecated<br />Use the `startActivity` mobile command (`driver.startActivity()`) instead

### Usage[​](#usage-40 "Direct link to Usage")

```
await driver.appiumStartActivity(appPackage, appActivity, appWaitPackage, appWaitActivity, intentAction, intentCategory, intentFlags, optionalIntentArguments, dontStopAppOnReset)
```

### Parameters[​](#parameters-21 "Direct link to Parameters")

| Name                                                              | Type     | Details                                                                           |
| ----------------------------------------------------------------- | -------- | --------------------------------------------------------------------------------- |
| `appPackage`                                                      | `string` | name of app                                                                       |
| `appActivity`                                                     | `string` | name of activity                                                                  |
| `appWaitPackage`<br />*optional*                                  | `string` | name of app to wait for                                                           |
| `appWaitActivity`<br />*optional*                                 | `string` | name of activity to wait for                                                      |
| `intentAction=android.intent.action.MAIN`<br />*optional*         | `string` | intent action which will be used to start activity                                |
| `intentCategory=android.intent.category.LAUNCHER`<br />*optional* | `string` | intent category which will be used to start activity                              |
| `intentFlags=0x10200000`<br />*optional*                          | `string` | flags that will be used to start activity                                         |
| `optionalIntentArguments`<br />*optional*                         | `string` | additional intent arguments that will be used to start activity                   |
| `dontStopAppOnReset`<br />*optional*                              | `string` | doesn’t stop the process of the app under test, before starting the app using adb |

### Support[​](#support-31 "Direct link to Support")

![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg)

* **Android:** UiAutomator (4.2+)

***

## appiumGetSystemBars[​](#appiumgetsystembars "Direct link to appiumGetSystemBars")

Retrieve visibility and bounds information of the status and navigation bars. This is the raw Appium protocol endpoint. Prefer the `getSystemBars` mobile command which provides automatic Appium 3 compatibility with fallback for older drivers.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.github.io/appium.io/docs/en/commands/device/system/system-bars/).

caution

This protocol command is deprecated<br />Use the `getSystemBars` mobile command (`driver.getSystemBars()`) instead

### Usage[​](#usage-41 "Direct link to Usage")

```
await driver.appiumGetSystemBars()
```

### Returns[​](#returns-20 "Direct link to Returns")

* **\<object\[]>** **`systemBars`:** Information about visibility and bounds of status and navigation bar

### Support[​](#support-32 "Direct link to Support")

![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg)

* **Android:** UiAutomator (4.2+)

***

## getDeviceTime[​](#getdevicetime "Direct link to getDeviceTime")

Get the time on the device.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.github.io/appium.io/docs/en/commands/device/system/system-time/).

### Usage[​](#usage-42 "Direct link to Usage")

```
await driver.getDeviceTime()
```

### Returns[​](#returns-21 "Direct link to Returns")

* **\<string>** **`time`:** Time on the device

### Support[​](#support-33 "Direct link to Support")

![Support for XCUITest (9.3+), UIAutomation (8.0 to 9.3)](data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iRWJlbmVfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgd2lkdGg9IjQ5Ni4yNTVweCIgaGVpZ2h0PSI2MDguNzI4cHgiIHZpZXdCb3g9IjAgMCA0OTYuMjU1IDYwOC43MjgiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQ5Ni4yNTUgNjA4LjcyODsiCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxwYXRoIHN0eWxlPSJmaWxsOiM5OTk5OTk7IiBkPSJNMjczLjgxLDUyLjk3M0MzMTMuODA2LDAuMjU3LDM2OS40MSwwLDM2OS40MSwwczguMjcxLDQ5LjU2Mi0zMS40NjMsOTcuMzA2CgljLTQyLjQyNiw1MC45OC05MC42NDksNDIuNjM4LTkwLjY0OSw0Mi42MzhTMjM4LjI0Myw5OS44NSwyNzMuODEsNTIuOTczeiIvPgo8cGF0aCBzdHlsZT0iZmlsbDojOTk5OTk5OyIgZD0iTTI1Mi4zODUsMTc0LjY2MmMyMC41NzYsMCw1OC43NjQtMjguMjg0LDEwOC40NzEtMjguMjg0Yzg1LjU2MiwwLDExOS4yMjIsNjAuODgzLDExOS4yMjIsNjAuODgzCglzLTY1LjgzMywzMy42NTktNjUuODMzLDExNS4zMzFjMCw5Mi4xMzMsODIuMDEsMTIzLjg4NSw4Mi4wMSwxMjMuODg1cy01Ny4zMjgsMTYxLjM1Ny0xMzQuNzYyLDE2MS4zNTcKCWMtMzUuNTY1LDAtNjMuMjE1LTIzLjk2Ny0xMDAuNjg4LTIzLjk2N2MtMzguMTg4LDAtNzYuMDg0LDI0Ljg2MS0xMDAuNzY2LDI0Ljg2MUM4OS4zMyw2MDguNzMsMCw0NTUuNjY2LDAsMzMyLjYyOAoJYzAtMTIxLjA1Miw3NS42MTItMTg0LjU1NCwxNDYuNTMzLTE4NC41NTRDMTkyLjYzOCwxNDguMDc0LDIyOC40MTYsMTc0LjY2MiwyNTIuMzg1LDE3NC42NjJ6Ii8+Cjwvc3ZnPgo=) ![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg)

* **iOS:** XCUITest (9.3+), UIAutomation (8.0 to 9.3)
* **Android:** UiAutomator (4.2+)

***

## appiumGetDisplayDensity[​](#appiumgetdisplaydensity "Direct link to appiumGetDisplayDensity")

Get display density from device. This is the raw Appium protocol endpoint. Prefer the `getDisplayDensity` mobile command which provides automatic Appium 3 compatibility with fallback for older drivers.<br /><br />Appium command. More details can be found in the [official protocol docs](https://github.com/appium/appium-base-driver/blob/master/docs/mjsonwp/protocol-methods.md#appium-extension-endpoints).

caution

This protocol command is deprecated<br />Use the `getDisplayDensity` mobile command (`driver.getDisplayDensity()`) instead

### Usage[​](#usage-43 "Direct link to Usage")

```
await driver.appiumGetDisplayDensity()
```

### Returns[​](#returns-22 "Direct link to Returns")

* **<\*>**

### Support[​](#support-34 "Direct link to Support")

![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg)

* **Android:** UiAutomator (4.2+)

***

## appiumTouchId[​](#appiumtouchid "Direct link to appiumTouchId")

Simulate a [touch id](https://support.apple.com/en-ca/ht201371) event (iOS Simulator only). To enable this feature, the `allowTouchIdEnroll` desired capability must be set to true and the Simulator must be [enrolled](https://support.apple.com/en-ca/ht201371). When you set allowTouchIdEnroll to true, it will set the Simulator to be enrolled by default. The enrollment state can be [toggled](https://appium.github.io/appium.io/docs/en/commands/device/simulator/toggle-touch-id-enrollment/index.html). This call will only work if Appium process or its parent application (e.g. Terminal.app or Appium.app) has access to Mac OS accessibility in System Preferences > Security & Privacy > Privacy > Accessibility list.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.github.io/appium.io/docs/en/commands/device/simulator/touch-id/).

caution

This protocol command is deprecated<br />Use the `touchId` mobile command (`driver.touchId()`) instead

### Usage[​](#usage-44 "Direct link to Usage")

```
await driver.appiumTouchId(match)
```

### Parameters[​](#parameters-22 "Direct link to Parameters")

| Name    | Type      | Details                                                               |
| ------- | --------- | --------------------------------------------------------------------- |
| `match` | `boolean` | are we simulating a successful touch (true) or a failed touch (false) |

### Support[​](#support-35 "Direct link to Support")

![Support for XCUITest (9.3+)](data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iRWJlbmVfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgd2lkdGg9IjQ5Ni4yNTVweCIgaGVpZ2h0PSI2MDguNzI4cHgiIHZpZXdCb3g9IjAgMCA0OTYuMjU1IDYwOC43MjgiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQ5Ni4yNTUgNjA4LjcyODsiCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxwYXRoIHN0eWxlPSJmaWxsOiM5OTk5OTk7IiBkPSJNMjczLjgxLDUyLjk3M0MzMTMuODA2LDAuMjU3LDM2OS40MSwwLDM2OS40MSwwczguMjcxLDQ5LjU2Mi0zMS40NjMsOTcuMzA2CgljLTQyLjQyNiw1MC45OC05MC42NDksNDIuNjM4LTkwLjY0OSw0Mi42MzhTMjM4LjI0Myw5OS44NSwyNzMuODEsNTIuOTczeiIvPgo8cGF0aCBzdHlsZT0iZmlsbDojOTk5OTk5OyIgZD0iTTI1Mi4zODUsMTc0LjY2MmMyMC41NzYsMCw1OC43NjQtMjguMjg0LDEwOC40NzEtMjguMjg0Yzg1LjU2MiwwLDExOS4yMjIsNjAuODgzLDExOS4yMjIsNjAuODgzCglzLTY1LjgzMywzMy42NTktNjUuODMzLDExNS4zMzFjMCw5Mi4xMzMsODIuMDEsMTIzLjg4NSw4Mi4wMSwxMjMuODg1cy01Ny4zMjgsMTYxLjM1Ny0xMzQuNzYyLDE2MS4zNTcKCWMtMzUuNTY1LDAtNjMuMjE1LTIzLjk2Ny0xMDAuNjg4LTIzLjk2N2MtMzguMTg4LDAtNzYuMDg0LDI0Ljg2MS0xMDAuNzY2LDI0Ljg2MUM4OS4zMyw2MDguNzMsMCw0NTUuNjY2LDAsMzMyLjYyOAoJYzAtMTIxLjA1Miw3NS42MTItMTg0LjU1NCwxNDYuNTMzLTE4NC41NTRDMTkyLjYzOCwxNDguMDc0LDIyOC40MTYsMTc0LjY2MiwyNTIuMzg1LDE3NC42NjJ6Ii8+Cjwvc3ZnPgo=)

* **iOS:** XCUITest (9.3+)

***

## appiumToggleEnrollTouchId[​](#appiumtoggleenrolltouchid "Direct link to appiumToggleEnrollTouchId")

Toggle the simulator being [enrolled](https://support.apple.com/en-ca/ht201371) to accept touchId (iOS Simulator only). To enable this feature, the `allowTouchIdEnroll` desired capability must be set to true. When `allowTouchIdEnroll` is set to true the Simulator will be enrolled by default, and the 'Toggle Touch ID Enrollment' changes the enrollment state. This call will only work if the Appium process or its parent application (e.g., Terminal.app or Appium.app) has access to Mac OS accessibility in System Preferences > Security & Privacy > Privacy > Accessibility list.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.github.io/appium.io/docs/en/commands/device/simulator/toggle-touch-id-enrollment/).

caution

This protocol command is deprecated<br />Use the `toggleEnrollTouchId` mobile command (`driver.toggleEnrollTouchId()`) instead

### Usage[​](#usage-45 "Direct link to Usage")

```
await driver.appiumToggleEnrollTouchId(enabled)
```

### Parameters[​](#parameters-23 "Direct link to Parameters")

| Name                           | Type      | Details                                                |
| ------------------------------ | --------- | ------------------------------------------------------ |
| `enabled=true`<br />*optional* | `boolean` | equals to true if TouchID enrollment should be enabled |

### Support[​](#support-36 "Direct link to Support")

![Support for XCUITest (9.3+)](data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iRWJlbmVfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgd2lkdGg9IjQ5Ni4yNTVweCIgaGVpZ2h0PSI2MDguNzI4cHgiIHZpZXdCb3g9IjAgMCA0OTYuMjU1IDYwOC43MjgiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQ5Ni4yNTUgNjA4LjcyODsiCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxwYXRoIHN0eWxlPSJmaWxsOiM5OTk5OTk7IiBkPSJNMjczLjgxLDUyLjk3M0MzMTMuODA2LDAuMjU3LDM2OS40MSwwLDM2OS40MSwwczguMjcxLDQ5LjU2Mi0zMS40NjMsOTcuMzA2CgljLTQyLjQyNiw1MC45OC05MC42NDksNDIuNjM4LTkwLjY0OSw0Mi42MzhTMjM4LjI0Myw5OS44NSwyNzMuODEsNTIuOTczeiIvPgo8cGF0aCBzdHlsZT0iZmlsbDojOTk5OTk5OyIgZD0iTTI1Mi4zODUsMTc0LjY2MmMyMC41NzYsMCw1OC43NjQtMjguMjg0LDEwOC40NzEtMjguMjg0Yzg1LjU2MiwwLDExOS4yMjIsNjAuODgzLDExOS4yMjIsNjAuODgzCglzLTY1LjgzMywzMy42NTktNjUuODMzLDExNS4zMzFjMCw5Mi4xMzMsODIuMDEsMTIzLjg4NSw4Mi4wMSwxMjMuODg1cy01Ny4zMjgsMTYxLjM1Ny0xMzQuNzYyLDE2MS4zNTcKCWMtMzUuNTY1LDAtNjMuMjE1LTIzLjk2Ny0xMDAuNjg4LTIzLjk2N2MtMzguMTg4LDAtNzYuMDg0LDI0Ljg2MS0xMDAuNzY2LDI0Ljg2MUM4OS4zMyw2MDguNzMsMCw0NTUuNjY2LDAsMzMyLjYyOAoJYzAtMTIxLjA1Miw3NS42MTItMTg0LjU1NCwxNDYuNTMzLTE4NC41NTRDMTkyLjYzOCwxNDguMDc0LDIyOC40MTYsMTc0LjY2MiwyNTIuMzg1LDE3NC42NjJ6Ii8+Cjwvc3ZnPgo=)

* **iOS:** XCUITest (9.3+)

***

## appiumLaunchApp[​](#appiumlaunchapp "Direct link to appiumLaunchApp")

Launch an app on device. This is the raw Appium protocol endpoint. Prefer the `launchApp` mobile command which provides automatic Appium 3 compatibility with fallback for older drivers.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.github.io/appium.io/docs/en/commands/device/app/launch-app/).

caution

This protocol command is deprecated<br />Use the `launchApp` mobile command (`driver.launchApp()`) instead

### Usage[​](#usage-46 "Direct link to Usage")

```
await driver.appiumLaunchApp()
```

### Support[​](#support-37 "Direct link to Support")

![Support for XCUITest (9.3+), UIAutomation (8.0 to 9.3)](data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iRWJlbmVfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgd2lkdGg9IjQ5Ni4yNTVweCIgaGVpZ2h0PSI2MDguNzI4cHgiIHZpZXdCb3g9IjAgMCA0OTYuMjU1IDYwOC43MjgiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQ5Ni4yNTUgNjA4LjcyODsiCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxwYXRoIHN0eWxlPSJmaWxsOiM5OTk5OTk7IiBkPSJNMjczLjgxLDUyLjk3M0MzMTMuODA2LDAuMjU3LDM2OS40MSwwLDM2OS40MSwwczguMjcxLDQ5LjU2Mi0zMS40NjMsOTcuMzA2CgljLTQyLjQyNiw1MC45OC05MC42NDksNDIuNjM4LTkwLjY0OSw0Mi42MzhTMjM4LjI0Myw5OS44NSwyNzMuODEsNTIuOTczeiIvPgo8cGF0aCBzdHlsZT0iZmlsbDojOTk5OTk5OyIgZD0iTTI1Mi4zODUsMTc0LjY2MmMyMC41NzYsMCw1OC43NjQtMjguMjg0LDEwOC40NzEtMjguMjg0Yzg1LjU2MiwwLDExOS4yMjIsNjAuODgzLDExOS4yMjIsNjAuODgzCglzLTY1LjgzMywzMy42NTktNjUuODMzLDExNS4zMzFjMCw5Mi4xMzMsODIuMDEsMTIzLjg4NSw4Mi4wMSwxMjMuODg1cy01Ny4zMjgsMTYxLjM1Ny0xMzQuNzYyLDE2MS4zNTcKCWMtMzUuNTY1LDAtNjMuMjE1LTIzLjk2Ny0xMDAuNjg4LTIzLjk2N2MtMzguMTg4LDAtNzYuMDg0LDI0Ljg2MS0xMDAuNzY2LDI0Ljg2MUM4OS4zMyw2MDguNzMsMCw0NTUuNjY2LDAsMzMyLjYyOAoJYzAtMTIxLjA1Miw3NS42MTItMTg0LjU1NCwxNDYuNTMzLTE4NC41NTRDMTkyLjYzOCwxNDguMDc0LDIyOC40MTYsMTc0LjY2MiwyNTIuMzg1LDE3NC42NjJ6Ii8+Cjwvc3ZnPgo=) ![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg)

* **iOS:** XCUITest (9.3+), UIAutomation (8.0 to 9.3)
* **Android:** UiAutomator (4.2+)

***

## appiumCloseApp[​](#appiumcloseapp "Direct link to appiumCloseApp")

Close an app on device. This is the raw Appium protocol endpoint. Prefer the `closeApp` mobile command which provides automatic Appium 3 compatibility with fallback for older drivers.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.github.io/appium.io/docs/en/commands/device/app/close-app/).

caution

This protocol command is deprecated<br />Use the `closeApp` mobile command (`driver.closeApp()`) instead

### Usage[​](#usage-47 "Direct link to Usage")

```
await driver.appiumCloseApp()
```

### Support[​](#support-38 "Direct link to Support")

![Support for XCUITest (9.3+), UIAutomation (8.0 to 9.3)](data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iRWJlbmVfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgd2lkdGg9IjQ5Ni4yNTVweCIgaGVpZ2h0PSI2MDguNzI4cHgiIHZpZXdCb3g9IjAgMCA0OTYuMjU1IDYwOC43MjgiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQ5Ni4yNTUgNjA4LjcyODsiCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxwYXRoIHN0eWxlPSJmaWxsOiM5OTk5OTk7IiBkPSJNMjczLjgxLDUyLjk3M0MzMTMuODA2LDAuMjU3LDM2OS40MSwwLDM2OS40MSwwczguMjcxLDQ5LjU2Mi0zMS40NjMsOTcuMzA2CgljLTQyLjQyNiw1MC45OC05MC42NDksNDIuNjM4LTkwLjY0OSw0Mi42MzhTMjM4LjI0Myw5OS44NSwyNzMuODEsNTIuOTczeiIvPgo8cGF0aCBzdHlsZT0iZmlsbDojOTk5OTk5OyIgZD0iTTI1Mi4zODUsMTc0LjY2MmMyMC41NzYsMCw1OC43NjQtMjguMjg0LDEwOC40NzEtMjguMjg0Yzg1LjU2MiwwLDExOS4yMjIsNjAuODgzLDExOS4yMjIsNjAuODgzCglzLTY1LjgzMywzMy42NTktNjUuODMzLDExNS4zMzFjMCw5Mi4xMzMsODIuMDEsMTIzLjg4NSw4Mi4wMSwxMjMuODg1cy01Ny4zMjgsMTYxLjM1Ny0xMzQuNzYyLDE2MS4zNTcKCWMtMzUuNTY1LDAtNjMuMjE1LTIzLjk2Ny0xMDAuNjg4LTIzLjk2N2MtMzguMTg4LDAtNzYuMDg0LDI0Ljg2MS0xMDAuNzY2LDI0Ljg2MUM4OS4zMyw2MDguNzMsMCw0NTUuNjY2LDAsMzMyLjYyOAoJYzAtMTIxLjA1Miw3NS42MTItMTg0LjU1NCwxNDYuNTMzLTE4NC41NTRDMTkyLjYzOCwxNDguMDc0LDIyOC40MTYsMTc0LjY2MiwyNTIuMzg1LDE3NC42NjJ6Ii8+Cjwvc3ZnPgo=) ![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg)

* **iOS:** XCUITest (9.3+), UIAutomation (8.0 to 9.3)
* **Android:** UiAutomator (4.2+)

***

## appiumBackground[​](#appiumbackground "Direct link to appiumBackground")

Send the currently running app for this session to the background. This is the raw Appium protocol endpoint. Prefer the `background` mobile command which provides automatic Appium 3 compatibility with fallback for older drivers.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.github.io/appium.io/docs/en/commands/device/app/background-app/).

caution

This protocol command is deprecated<br />Use the `background` mobile command (`driver.background()`) instead

### Usage[​](#usage-48 "Direct link to Usage")

```
await driver.appiumBackground(seconds)
```

### Parameters[​](#parameters-24 "Direct link to Parameters")

| Name           | Type           | Details                                                                    |
| -------------- | -------------- | -------------------------------------------------------------------------- |
| `seconds=null` | `number, null` | Timeout after which to restore the app. A value of -1 disables the timeout |

### Support[​](#support-39 "Direct link to Support")

![Support for XCUITest (9.3+), UIAutomation (8.0 to 9.3)](data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iRWJlbmVfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgd2lkdGg9IjQ5Ni4yNTVweCIgaGVpZ2h0PSI2MDguNzI4cHgiIHZpZXdCb3g9IjAgMCA0OTYuMjU1IDYwOC43MjgiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQ5Ni4yNTUgNjA4LjcyODsiCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxwYXRoIHN0eWxlPSJmaWxsOiM5OTk5OTk7IiBkPSJNMjczLjgxLDUyLjk3M0MzMTMuODA2LDAuMjU3LDM2OS40MSwwLDM2OS40MSwwczguMjcxLDQ5LjU2Mi0zMS40NjMsOTcuMzA2CgljLTQyLjQyNiw1MC45OC05MC42NDksNDIuNjM4LTkwLjY0OSw0Mi42MzhTMjM4LjI0Myw5OS44NSwyNzMuODEsNTIuOTczeiIvPgo8cGF0aCBzdHlsZT0iZmlsbDojOTk5OTk5OyIgZD0iTTI1Mi4zODUsMTc0LjY2MmMyMC41NzYsMCw1OC43NjQtMjguMjg0LDEwOC40NzEtMjguMjg0Yzg1LjU2MiwwLDExOS4yMjIsNjAuODgzLDExOS4yMjIsNjAuODgzCglzLTY1LjgzMywzMy42NTktNjUuODMzLDExNS4zMzFjMCw5Mi4xMzMsODIuMDEsMTIzLjg4NSw4Mi4wMSwxMjMuODg1cy01Ny4zMjgsMTYxLjM1Ny0xMzQuNzYyLDE2MS4zNTcKCWMtMzUuNTY1LDAtNjMuMjE1LTIzLjk2Ny0xMDAuNjg4LTIzLjk2N2MtMzguMTg4LDAtNzYuMDg0LDI0Ljg2MS0xMDAuNzY2LDI0Ljg2MUM4OS4zMyw2MDguNzMsMCw0NTUuNjY2LDAsMzMyLjYyOAoJYzAtMTIxLjA1Miw3NS42MTItMTg0LjU1NCwxNDYuNTMzLTE4NC41NTRDMTkyLjYzOCwxNDguMDc0LDIyOC40MTYsMTc0LjY2MiwyNTIuMzg1LDE3NC42NjJ6Ii8+Cjwvc3ZnPgo=) ![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg)

* **iOS:** XCUITest (9.3+), UIAutomation (8.0 to 9.3)
* **Android:** UiAutomator (4.2+)

***

## endCoverage[​](#endcoverage "Direct link to endCoverage")

Get test coverage data.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.github.io/appium.io/docs/en/commands/device/app/end-test-coverage/).

caution

This protocol command is deprecated<br />Use `driver.execute('mobile: shell', { ... })` instead

### Usage[​](#usage-49 "Direct link to Usage")

```
await driver.endCoverage(intent, path)
```

### Parameters[​](#parameters-25 "Direct link to Parameters")

| Name     | Type     | Details             |
| -------- | -------- | ------------------- |
| `intent` | `string` | intent to broadcast |
| `path`   | `string` | path to .ec file    |

### Support[​](#support-40 "Direct link to Support")

![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg)

* **Android:** UiAutomator (4.2+)

***

## appiumGetStrings[​](#appiumgetstrings "Direct link to appiumGetStrings")

Get app strings. This is the raw Appium protocol endpoint. Prefer the `getStrings` mobile command which provides automatic Appium 3 compatibility with fallback for older drivers.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.github.io/appium.io/docs/en/commands/device/app/get-app-strings/).

caution

This protocol command is deprecated<br />Use the `getStrings` mobile command (`driver.getStrings()`) instead

### Usage[​](#usage-50 "Direct link to Usage")

```
await driver.appiumGetStrings(language, stringFile)
```

### Parameters[​](#parameters-26 "Direct link to Parameters")

| Name                         | Type     | Details                 |
| ---------------------------- | -------- | ----------------------- |
| `language`<br />*optional*   | `string` | language code           |
| `stringFile`<br />*optional* | `string` | path to the string file |

### Returns[​](#returns-23 "Direct link to Returns")

* **\<object>** **`appStrings`:** all defined Strings from an app for the specified language and strings filename

### Support[​](#support-41 "Direct link to Support")

![Support for XCUITest (9.3+), UIAutomation (8.0 to 9.3)](data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iRWJlbmVfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgd2lkdGg9IjQ5Ni4yNTVweCIgaGVpZ2h0PSI2MDguNzI4cHgiIHZpZXdCb3g9IjAgMCA0OTYuMjU1IDYwOC43MjgiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQ5Ni4yNTUgNjA4LjcyODsiCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxwYXRoIHN0eWxlPSJmaWxsOiM5OTk5OTk7IiBkPSJNMjczLjgxLDUyLjk3M0MzMTMuODA2LDAuMjU3LDM2OS40MSwwLDM2OS40MSwwczguMjcxLDQ5LjU2Mi0zMS40NjMsOTcuMzA2CgljLTQyLjQyNiw1MC45OC05MC42NDksNDIuNjM4LTkwLjY0OSw0Mi42MzhTMjM4LjI0Myw5OS44NSwyNzMuODEsNTIuOTczeiIvPgo8cGF0aCBzdHlsZT0iZmlsbDojOTk5OTk5OyIgZD0iTTI1Mi4zODUsMTc0LjY2MmMyMC41NzYsMCw1OC43NjQtMjguMjg0LDEwOC40NzEtMjguMjg0Yzg1LjU2MiwwLDExOS4yMjIsNjAuODgzLDExOS4yMjIsNjAuODgzCglzLTY1LjgzMywzMy42NTktNjUuODMzLDExNS4zMzFjMCw5Mi4xMzMsODIuMDEsMTIzLjg4NSw4Mi4wMSwxMjMuODg1cy01Ny4zMjgsMTYxLjM1Ny0xMzQuNzYyLDE2MS4zNTcKCWMtMzUuNTY1LDAtNjMuMjE1LTIzLjk2Ny0xMDAuNjg4LTIzLjk2N2MtMzguMTg4LDAtNzYuMDg0LDI0Ljg2MS0xMDAuNzY2LDI0Ljg2MUM4OS4zMyw2MDguNzMsMCw0NTUuNjY2LDAsMzMyLjYyOAoJYzAtMTIxLjA1Miw3NS42MTItMTg0LjU1NCwxNDYuNTMzLTE4NC41NTRDMTkyLjYzOCwxNDguMDc0LDIyOC40MTYsMTc0LjY2MiwyNTIuMzg1LDE3NC42NjJ6Ii8+Cjwvc3ZnPgo=) ![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg)

* **iOS:** XCUITest (9.3+), UIAutomation (8.0 to 9.3)
* **Android:** UiAutomator (4.2+)

***

## setValueImmediate[​](#setvalueimmediate "Direct link to setValueImmediate")

Appium command. More details can be found in the [official protocol docs](https://github.com/appium/appium-base-driver/blob/master/docs/mjsonwp/protocol-methods.md#appium-extension-endpoints).

caution

This protocol command is deprecated<br />Use `driver.addValue(...)` or `driver.setValue(...)` instead

### Usage[​](#usage-51 "Direct link to Usage")

```
await driver.setValueImmediate(elementId, text)
```

### Parameters[​](#parameters-27 "Direct link to Parameters")

| Name        | Type     | Details                                                             |
| ----------- | -------- | ------------------------------------------------------------------- |
| `elementId` | `String` | the id of an element returned in a previous call to Find Element(s) |
| `text`      | `string` | text to set to an element                                           |

### Support[​](#support-42 "Direct link to Support")

![Support for XCUITest (9.3+)](data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iRWJlbmVfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgd2lkdGg9IjQ5Ni4yNTVweCIgaGVpZ2h0PSI2MDguNzI4cHgiIHZpZXdCb3g9IjAgMCA0OTYuMjU1IDYwOC43MjgiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQ5Ni4yNTUgNjA4LjcyODsiCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxwYXRoIHN0eWxlPSJmaWxsOiM5OTk5OTk7IiBkPSJNMjczLjgxLDUyLjk3M0MzMTMuODA2LDAuMjU3LDM2OS40MSwwLDM2OS40MSwwczguMjcxLDQ5LjU2Mi0zMS40NjMsOTcuMzA2CgljLTQyLjQyNiw1MC45OC05MC42NDksNDIuNjM4LTkwLjY0OSw0Mi42MzhTMjM4LjI0Myw5OS44NSwyNzMuODEsNTIuOTczeiIvPgo8cGF0aCBzdHlsZT0iZmlsbDojOTk5OTk5OyIgZD0iTTI1Mi4zODUsMTc0LjY2MmMyMC41NzYsMCw1OC43NjQtMjguMjg0LDEwOC40NzEtMjguMjg0Yzg1LjU2MiwwLDExOS4yMjIsNjAuODgzLDExOS4yMjIsNjAuODgzCglzLTY1LjgzMywzMy42NTktNjUuODMzLDExNS4zMzFjMCw5Mi4xMzMsODIuMDEsMTIzLjg4NSw4Mi4wMSwxMjMuODg1cy01Ny4zMjgsMTYxLjM1Ny0xMzQuNzYyLDE2MS4zNTcKCWMtMzUuNTY1LDAtNjMuMjE1LTIzLjk2Ny0xMDAuNjg4LTIzLjk2N2MtMzguMTg4LDAtNzYuMDg0LDI0Ljg2MS0xMDAuNzY2LDI0Ljg2MUM4OS4zMyw2MDguNzMsMCw0NTUuNjY2LDAsMzMyLjYyOAoJYzAtMTIxLjA1Miw3NS42MTItMTg0LjU1NCwxNDYuNTMzLTE4NC41NTRDMTkyLjYzOCwxNDguMDc0LDIyOC40MTYsMTc0LjY2MiwyNTIuMzg1LDE3NC42NjJ6Ii8+Cjwvc3ZnPgo=) ![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg)

* **iOS:** XCUITest (9.3+)
* **Android:** UiAutomator (4.2+)

***

## replaceValue[​](#replacevalue "Direct link to replaceValue")

Replace the value to element directly.<br /><br />Appium command. More details can be found in the [official protocol docs](https://github.com/appium/appium-base-driver/blob/master/docs/mjsonwp/protocol-methods.md#appium-extension-endpoints).

caution

This protocol command is deprecated<br />Use `driver.addValue(...)` or `driver.setValue(...)` instead

### Usage[​](#usage-52 "Direct link to Usage")

```
await driver.replaceValue(elementId, value)
```

### Parameters[​](#parameters-28 "Direct link to Parameters")

| Name        | Type     | Details                                                             |
| ----------- | -------- | ------------------------------------------------------------------- |
| `elementId` | `String` | the id of an element returned in a previous call to Find Element(s) |
| `value`     | `string` | value to replace on element                                         |

### Support[​](#support-43 "Direct link to Support")

![Support for XCUITest (9.3+), UIAutomation (8.0 to 9.3)](data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iRWJlbmVfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgd2lkdGg9IjQ5Ni4yNTVweCIgaGVpZ2h0PSI2MDguNzI4cHgiIHZpZXdCb3g9IjAgMCA0OTYuMjU1IDYwOC43MjgiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQ5Ni4yNTUgNjA4LjcyODsiCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxwYXRoIHN0eWxlPSJmaWxsOiM5OTk5OTk7IiBkPSJNMjczLjgxLDUyLjk3M0MzMTMuODA2LDAuMjU3LDM2OS40MSwwLDM2OS40MSwwczguMjcxLDQ5LjU2Mi0zMS40NjMsOTcuMzA2CgljLTQyLjQyNiw1MC45OC05MC42NDksNDIuNjM4LTkwLjY0OSw0Mi42MzhTMjM4LjI0Myw5OS44NSwyNzMuODEsNTIuOTczeiIvPgo8cGF0aCBzdHlsZT0iZmlsbDojOTk5OTk5OyIgZD0iTTI1Mi4zODUsMTc0LjY2MmMyMC41NzYsMCw1OC43NjQtMjguMjg0LDEwOC40NzEtMjguMjg0Yzg1LjU2MiwwLDExOS4yMjIsNjAuODgzLDExOS4yMjIsNjAuODgzCglzLTY1LjgzMywzMy42NTktNjUuODMzLDExNS4zMzFjMCw5Mi4xMzMsODIuMDEsMTIzLjg4NSw4Mi4wMSwxMjMuODg1cy01Ny4zMjgsMTYxLjM1Ny0xMzQuNzYyLDE2MS4zNTcKCWMtMzUuNTY1LDAtNjMuMjE1LTIzLjk2Ny0xMDAuNjg4LTIzLjk2N2MtMzguMTg4LDAtNzYuMDg0LDI0Ljg2MS0xMDAuNzY2LDI0Ljg2MUM4OS4zMyw2MDguNzMsMCw0NTUuNjY2LDAsMzMyLjYyOAoJYzAtMTIxLjA1Miw3NS42MTItMTg0LjU1NCwxNDYuNTMzLTE4NC41NTRDMTkyLjYzOCwxNDguMDc0LDIyOC40MTYsMTc0LjY2MiwyNTIuMzg1LDE3NC42NjJ6Ii8+Cjwvc3ZnPgo=) ![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg)

* **iOS:** XCUITest (9.3+), UIAutomation (8.0 to 9.3)
* **Android:** UiAutomator (4.2+)

***

## getSettings[​](#getsettings "Direct link to getSettings")

Retrieve the current session settings.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.io/docs/en/latest/reference/api/appium/#getsettings).

### Usage[​](#usage-53 "Direct link to Usage")

```
await driver.getSettings()
```

### Returns[​](#returns-24 "Direct link to Returns")

* **\<object>** **`settings`:** JSON hash of all the currently specified settings, see Settings API

### Support[​](#support-44 "Direct link to Support")

![Support for XCUITest (9.3+), UIAutomation (8.0 to 9.3)](data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iRWJlbmVfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgd2lkdGg9IjQ5Ni4yNTVweCIgaGVpZ2h0PSI2MDguNzI4cHgiIHZpZXdCb3g9IjAgMCA0OTYuMjU1IDYwOC43MjgiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQ5Ni4yNTUgNjA4LjcyODsiCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxwYXRoIHN0eWxlPSJmaWxsOiM5OTk5OTk7IiBkPSJNMjczLjgxLDUyLjk3M0MzMTMuODA2LDAuMjU3LDM2OS40MSwwLDM2OS40MSwwczguMjcxLDQ5LjU2Mi0zMS40NjMsOTcuMzA2CgljLTQyLjQyNiw1MC45OC05MC42NDksNDIuNjM4LTkwLjY0OSw0Mi42MzhTMjM4LjI0Myw5OS44NSwyNzMuODEsNTIuOTczeiIvPgo8cGF0aCBzdHlsZT0iZmlsbDojOTk5OTk5OyIgZD0iTTI1Mi4zODUsMTc0LjY2MmMyMC41NzYsMCw1OC43NjQtMjguMjg0LDEwOC40NzEtMjguMjg0Yzg1LjU2MiwwLDExOS4yMjIsNjAuODgzLDExOS4yMjIsNjAuODgzCglzLTY1LjgzMywzMy42NTktNjUuODMzLDExNS4zMzFjMCw5Mi4xMzMsODIuMDEsMTIzLjg4NSw4Mi4wMSwxMjMuODg1cy01Ny4zMjgsMTYxLjM1Ny0xMzQuNzYyLDE2MS4zNTcKCWMtMzUuNTY1LDAtNjMuMjE1LTIzLjk2Ny0xMDAuNjg4LTIzLjk2N2MtMzguMTg4LDAtNzYuMDg0LDI0Ljg2MS0xMDAuNzY2LDI0Ljg2MUM4OS4zMyw2MDguNzMsMCw0NTUuNjY2LDAsMzMyLjYyOAoJYzAtMTIxLjA1Miw3NS42MTItMTg0LjU1NCwxNDYuNTMzLTE4NC41NTRDMTkyLjYzOCwxNDguMDc0LDIyOC40MTYsMTc0LjY2MiwyNTIuMzg1LDE3NC42NjJ6Ii8+Cjwvc3ZnPgo=) ![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg) ![Support for Windows (10+)](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA4OCA4OCI+PHBhdGggZD0ibTAgMTIuNDAyIDM1LjY4Ny00Ljg2MDIuMDE1NiAzNC40MjMtMzUuNjcuMjAzMTN6bTM1LjY3IDMzLjUyOS4wMjc3IDM0LjQ1My0zNS42Ny00LjkwNDEtLjAwMi0yOS43OHptNC4zMjYxLTM5LjAyNSA0Ny4zMTgtNi45MDZ2NDEuNTI3bC00Ny4zMTguMzc1NjV6bTQ3LjMyOSAzOS4zNDktLjAxMTEgNDEuMzQtNDcuMzE4LTYuNjc4NC0uMDY2My0zNC43Mzl6IiBmaWxsPSIjMDBhZGVmIi8+PC9zdmc+)

* **iOS:** XCUITest (9.3+), UIAutomation (8.0 to 9.3)
* **Android:** UiAutomator (4.2+)
* **Windows:** Windows (10+)

***

## updateSettings[​](#updatesettings "Direct link to updateSettings")

Update the session settings.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.io/docs/en/latest/reference/api/appium/#updatesettings).

### Usage[​](#usage-54 "Direct link to Usage")

```
await driver.updateSettings(settings)
```

### Parameters[​](#parameters-29 "Direct link to Parameters")

| Name       | Type     | Details                                  |
| ---------- | -------- | ---------------------------------------- |
| `settings` | `object` | key/value object with settings to update |

### Support[​](#support-45 "Direct link to Support")

![Support for XCUITest (9.3+), UIAutomation (8.0 to 9.3)](data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iRWJlbmVfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgd2lkdGg9IjQ5Ni4yNTVweCIgaGVpZ2h0PSI2MDguNzI4cHgiIHZpZXdCb3g9IjAgMCA0OTYuMjU1IDYwOC43MjgiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQ5Ni4yNTUgNjA4LjcyODsiCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxwYXRoIHN0eWxlPSJmaWxsOiM5OTk5OTk7IiBkPSJNMjczLjgxLDUyLjk3M0MzMTMuODA2LDAuMjU3LDM2OS40MSwwLDM2OS40MSwwczguMjcxLDQ5LjU2Mi0zMS40NjMsOTcuMzA2CgljLTQyLjQyNiw1MC45OC05MC42NDksNDIuNjM4LTkwLjY0OSw0Mi42MzhTMjM4LjI0Myw5OS44NSwyNzMuODEsNTIuOTczeiIvPgo8cGF0aCBzdHlsZT0iZmlsbDojOTk5OTk5OyIgZD0iTTI1Mi4zODUsMTc0LjY2MmMyMC41NzYsMCw1OC43NjQtMjguMjg0LDEwOC40NzEtMjguMjg0Yzg1LjU2MiwwLDExOS4yMjIsNjAuODgzLDExOS4yMjIsNjAuODgzCglzLTY1LjgzMywzMy42NTktNjUuODMzLDExNS4zMzFjMCw5Mi4xMzMsODIuMDEsMTIzLjg4NSw4Mi4wMSwxMjMuODg1cy01Ny4zMjgsMTYxLjM1Ny0xMzQuNzYyLDE2MS4zNTcKCWMtMzUuNTY1LDAtNjMuMjE1LTIzLjk2Ny0xMDAuNjg4LTIzLjk2N2MtMzguMTg4LDAtNzYuMDg0LDI0Ljg2MS0xMDAuNzY2LDI0Ljg2MUM4OS4zMyw2MDguNzMsMCw0NTUuNjY2LDAsMzMyLjYyOAoJYzAtMTIxLjA1Miw3NS42MTItMTg0LjU1NCwxNDYuNTMzLTE4NC41NTRDMTkyLjYzOCwxNDguMDc0LDIyOC40MTYsMTc0LjY2MiwyNTIuMzg1LDE3NC42NjJ6Ii8+Cjwvc3ZnPgo=) ![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg) ![Support for Windows (10+)](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA4OCA4OCI+PHBhdGggZD0ibTAgMTIuNDAyIDM1LjY4Ny00Ljg2MDIuMDE1NiAzNC40MjMtMzUuNjcuMjAzMTN6bTM1LjY3IDMzLjUyOS4wMjc3IDM0LjQ1My0zNS42Ny00LjkwNDEtLjAwMi0yOS43OHptNC4zMjYxLTM5LjAyNSA0Ny4zMTgtNi45MDZ2NDEuNTI3bC00Ny4zMTguMzc1NjV6bTQ3LjMyOSAzOS4zNDktLjAxMTEgNDEuMzQtNDcuMzE4LTYuNjc4NC0uMDY2My0zNC43Mzl6IiBmaWxsPSIjMDBhZGVmIi8+PC9zdmc+)

* **iOS:** XCUITest (9.3+), UIAutomation (8.0 to 9.3)
* **Android:** UiAutomator (4.2+)
* **Windows:** Windows (10+)

***

## receiveAsyncResponse[​](#receiveasyncresponse "Direct link to receiveAsyncResponse")

Callback url for asynchronous execution of JavaScript.<br /><br />Appium command. More details can be found in the [official protocol docs](https://github.com/appium/appium-base-driver/blob/master/docs/mjsonwp/protocol-methods.md#appium-extension-endpoints).

caution

This protocol command is deprecated<br />Use `driver.executeAsyncScript(...)` instead

### Usage[​](#usage-55 "Direct link to Usage")

```
await driver.receiveAsyncResponse(response)
```

### Parameters[​](#parameters-30 "Direct link to Parameters")

| Name       | Type     | Details                       |
| ---------- | -------- | ----------------------------- |
| `response` | `object` | response to receive on device |

### Support[​](#support-46 "Direct link to Support")

![Support for XCUITest (9.3+), UIAutomation (8.0 to 9.3)](data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iRWJlbmVfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgd2lkdGg9IjQ5Ni4yNTVweCIgaGVpZ2h0PSI2MDguNzI4cHgiIHZpZXdCb3g9IjAgMCA0OTYuMjU1IDYwOC43MjgiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQ5Ni4yNTUgNjA4LjcyODsiCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxwYXRoIHN0eWxlPSJmaWxsOiM5OTk5OTk7IiBkPSJNMjczLjgxLDUyLjk3M0MzMTMuODA2LDAuMjU3LDM2OS40MSwwLDM2OS40MSwwczguMjcxLDQ5LjU2Mi0zMS40NjMsOTcuMzA2CgljLTQyLjQyNiw1MC45OC05MC42NDksNDIuNjM4LTkwLjY0OSw0Mi42MzhTMjM4LjI0Myw5OS44NSwyNzMuODEsNTIuOTczeiIvPgo8cGF0aCBzdHlsZT0iZmlsbDojOTk5OTk5OyIgZD0iTTI1Mi4zODUsMTc0LjY2MmMyMC41NzYsMCw1OC43NjQtMjguMjg0LDEwOC40NzEtMjguMjg0Yzg1LjU2MiwwLDExOS4yMjIsNjAuODgzLDExOS4yMjIsNjAuODgzCglzLTY1LjgzMywzMy42NTktNjUuODMzLDExNS4zMzFjMCw5Mi4xMzMsODIuMDEsMTIzLjg4NSw4Mi4wMSwxMjMuODg1cy01Ny4zMjgsMTYxLjM1Ny0xMzQuNzYyLDE2MS4zNTcKCWMtMzUuNTY1LDAtNjMuMjE1LTIzLjk2Ny0xMDAuNjg4LTIzLjk2N2MtMzguMTg4LDAtNzYuMDg0LDI0Ljg2MS0xMDAuNzY2LDI0Ljg2MUM4OS4zMyw2MDguNzMsMCw0NTUuNjY2LDAsMzMyLjYyOAoJYzAtMTIxLjA1Miw3NS42MTItMTg0LjU1NCwxNDYuNTMzLTE4NC41NTRDMTkyLjYzOCwxNDguMDc0LDIyOC40MTYsMTc0LjY2MiwyNTIuMzg1LDE3NC42NjJ6Ii8+Cjwvc3ZnPgo=)

* **iOS:** XCUITest (9.3+), UIAutomation (8.0 to 9.3)

***

## appiumGsmCall[​](#appiumgsmcall "Direct link to appiumGsmCall")

Make GSM call (Emulator only). This is the raw Appium protocol endpoint. Prefer the `gsmCall` mobile command which provides automatic Appium 3 compatibility with fallback for older drivers.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.github.io/appium.io/docs/en/commands/device/network/gsm-call/).

caution

This protocol command is deprecated<br />Use the `gsmCall` mobile command (`driver.gsmCall()`) instead

### Usage[​](#usage-56 "Direct link to Usage")

```
await driver.appiumGsmCall(phoneNumber, action)
```

### Parameters[​](#parameters-31 "Direct link to Parameters")

| Name          | Type     | Details                                         |
| ------------- | -------- | ----------------------------------------------- |
| `phoneNumber` | `string` | the phone number to call to                     |
| `action`      | `string` | The action - 'call', 'accept', 'cancel', 'hold' |

### Support[​](#support-47 "Direct link to Support")

![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg)

* **Android:** UiAutomator (4.2+)

***

## appiumGsmSignal[​](#appiumgsmsignal "Direct link to appiumGsmSignal")

Set GSM signal strength (Emulator only). This is the raw Appium protocol endpoint. Prefer the `gsmSignal` mobile command which provides automatic Appium 3 compatibility with fallback for older drivers.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.github.io/appium.io/docs/en/commands/device/network/gsm-signal/).

caution

This protocol command is deprecated<br />Use the `gsmSignal` mobile command (`driver.gsmSignal()`) instead

### Usage[​](#usage-57 "Direct link to Usage")

```
await driver.appiumGsmSignal(signalStrength, signalStrengh)
```

### Parameters[​](#parameters-32 "Direct link to Parameters")

| Name                            | Type     | Details                                                                                                                                                                            |
| ------------------------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `signalStrength`                | `string` | signal strength in the range \[0, 4]                                                                                                                                               |
| `signalStrengh`<br />*optional* | `string` | signal strength in the range \[0, 4]. Please also set this parameter with the same value if you use Appium v1.11.0 or lower (see <https://github.com/appium/appium/issues/12234>). |

### Support[​](#support-48 "Direct link to Support")

![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg)

* **Android:** UiAutomator (4.2+)

***

## appiumPowerCapacity[​](#appiumpowercapacity "Direct link to appiumPowerCapacity")

Set the battery percentage (Emulator only). This is the raw Appium protocol endpoint. Prefer the `powerCapacity` mobile command which provides automatic Appium 3 compatibility with fallback for older drivers.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.github.io/appium.io/docs/en/commands/device/emulator/power_capacity/).

caution

This protocol command is deprecated<br />Use the `powerCapacity` mobile command (`driver.powerCapacity()`) instead

### Usage[​](#usage-58 "Direct link to Usage")

```
await driver.appiumPowerCapacity(percent)
```

### Parameters[​](#parameters-33 "Direct link to Parameters")

| Name      | Type     | Details                             |
| --------- | -------- | ----------------------------------- |
| `percent` | `number` | percentage value in range \[0, 100] |

### Support[​](#support-49 "Direct link to Support")

![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg)

* **Android:** UiAutomator (4.2+)

***

## appiumPowerAC[​](#appiumpowerac "Direct link to appiumPowerAC")

Set the state of the battery charger to connected or not (Emulator only). This is the raw Appium protocol endpoint. Prefer the `powerAC` mobile command which provides automatic Appium 3 compatibility with fallback for older drivers.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.github.io/appium.io/docs/en/commands/device/emulator/power_ac/).

caution

This protocol command is deprecated<br />Use the `powerAC` mobile command (`driver.powerAC()`) instead

### Usage[​](#usage-59 "Direct link to Usage")

```
await driver.appiumPowerAC(state)
```

### Parameters[​](#parameters-34 "Direct link to Parameters")

| Name    | Type     | Details                  |
| ------- | -------- | ------------------------ |
| `state` | `string` | set the state. on or off |

### Support[​](#support-50 "Direct link to Support")

![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg)

* **Android:** UiAutomator (4.2+)

***

## appiumGsmVoice[​](#appiumgsmvoice "Direct link to appiumGsmVoice")

Set GSM voice state (Emulator only). This is the raw Appium protocol endpoint. Prefer the `gsmVoice` mobile command which provides automatic Appium 3 compatibility with fallback for older drivers.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.github.io/appium.io/docs/en/commands/device/network/gsm-voice/).

caution

This protocol command is deprecated<br />Use the `gsmVoice` mobile command (`driver.gsmVoice()`) instead

### Usage[​](#usage-60 "Direct link to Usage")

```
await driver.appiumGsmVoice(state)
```

### Parameters[​](#parameters-35 "Direct link to Parameters")

| Name    | Type     | Details                                                                                    |
| ------- | -------- | ------------------------------------------------------------------------------------------ |
| `state` | `string` | state of GSM voice - 'unregistered', 'home', 'roaming', 'searching', 'denied', 'off', 'on' |

### Support[​](#support-51 "Direct link to Support")

![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg)

* **Android:** UiAutomator (4.2+)

***

## appiumSendSms[​](#appiumsendsms "Direct link to appiumSendSms")

Simulate an SMS message (Emulator only). This is the raw Appium protocol endpoint. Prefer the `sendSms` mobile command which provides automatic Appium 3 compatibility with fallback for older drivers.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.github.io/appium.io/docs/en/commands/device/network/send-sms/).

caution

This protocol command is deprecated<br />Use the `sendSms` mobile command (`driver.sendSms()`) instead

### Usage[​](#usage-61 "Direct link to Usage")

```
await driver.appiumSendSms(phoneNumber, message)
```

### Parameters[​](#parameters-36 "Direct link to Parameters")

| Name          | Type     | Details                              |
| ------------- | -------- | ------------------------------------ |
| `phoneNumber` | `string` | the phone number to send the SMS too |
| `message`     | `string` | the SMS message                      |

### Support[​](#support-52 "Direct link to Support")

![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg)

* **Android:** UiAutomator (4.2+)

***

## appiumFingerPrint[​](#appiumfingerprint "Direct link to appiumFingerPrint")

Authenticate users by using their finger print scans on supported emulators. This is the raw Appium protocol endpoint. Prefer the `fingerPrint` mobile command which provides automatic Appium 3 compatibility with fallback for older drivers.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.github.io/appium.io/docs/en/commands/device/authentication/finger-print/).

caution

This protocol command is deprecated<br />Use the `fingerPrint` mobile command (`driver.fingerPrint()`) instead

### Usage[​](#usage-62 "Direct link to Usage")

```
await driver.appiumFingerPrint(fingerprintId)
```

### Parameters[​](#parameters-37 "Direct link to Parameters")

| Name            | Type     | Details                                                        |
| --------------- | -------- | -------------------------------------------------------------- |
| `fingerprintId` | `number` | finger prints stored in Android Keystore system (from 1 to 10) |

### Support[​](#support-53 "Direct link to Support")

![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg)

* **Android:** UiAutomator (4.2+)

***

## appiumSetClipboard[​](#appiumsetclipboard "Direct link to appiumSetClipboard")

Set the content of the system clipboard. This is the raw Appium protocol endpoint. Prefer the `setClipboard` mobile command which provides automatic Appium 3 compatibility with fallback for older drivers.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.github.io/appium.io/docs/en/commands/device/clipboard/set-clipboard/).

caution

This protocol command is deprecated<br />Use the `setClipboard` mobile command (`driver.setClipboard()`) instead

### Usage[​](#usage-63 "Direct link to Usage")

```
await driver.appiumSetClipboard(content, contentType, label)
```

### Parameters[​](#parameters-38 "Direct link to Parameters")

| Name                          | Type     | Details                                                                                |
| ----------------------------- | -------- | -------------------------------------------------------------------------------------- |
| `content`                     | `string` | The actual base64 encoded clipboard content                                            |
| `contentType`<br />*optional* | `string` | The type of the content to get. Plaintext, Image, URL. Android supports only plaintext |
| `label`<br />*optional*       | `string` | Clipboard data label for Android                                                       |

### Returns[​](#returns-25 "Direct link to Returns")

* **\<string>** **`response`:** Response from Appium server

### Support[​](#support-54 "Direct link to Support")

![Support for XCUITest (9.3+)](data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iRWJlbmVfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgd2lkdGg9IjQ5Ni4yNTVweCIgaGVpZ2h0PSI2MDguNzI4cHgiIHZpZXdCb3g9IjAgMCA0OTYuMjU1IDYwOC43MjgiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQ5Ni4yNTUgNjA4LjcyODsiCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxwYXRoIHN0eWxlPSJmaWxsOiM5OTk5OTk7IiBkPSJNMjczLjgxLDUyLjk3M0MzMTMuODA2LDAuMjU3LDM2OS40MSwwLDM2OS40MSwwczguMjcxLDQ5LjU2Mi0zMS40NjMsOTcuMzA2CgljLTQyLjQyNiw1MC45OC05MC42NDksNDIuNjM4LTkwLjY0OSw0Mi42MzhTMjM4LjI0Myw5OS44NSwyNzMuODEsNTIuOTczeiIvPgo8cGF0aCBzdHlsZT0iZmlsbDojOTk5OTk5OyIgZD0iTTI1Mi4zODUsMTc0LjY2MmMyMC41NzYsMCw1OC43NjQtMjguMjg0LDEwOC40NzEtMjguMjg0Yzg1LjU2MiwwLDExOS4yMjIsNjAuODgzLDExOS4yMjIsNjAuODgzCglzLTY1LjgzMywzMy42NTktNjUuODMzLDExNS4zMzFjMCw5Mi4xMzMsODIuMDEsMTIzLjg4NSw4Mi4wMSwxMjMuODg1cy01Ny4zMjgsMTYxLjM1Ny0xMzQuNzYyLDE2MS4zNTcKCWMtMzUuNTY1LDAtNjMuMjE1LTIzLjk2Ny0xMDAuNjg4LTIzLjk2N2MtMzguMTg4LDAtNzYuMDg0LDI0Ljg2MS0xMDAuNzY2LDI0Ljg2MUM4OS4zMyw2MDguNzMsMCw0NTUuNjY2LDAsMzMyLjYyOAoJYzAtMTIxLjA1Miw3NS42MTItMTg0LjU1NCwxNDYuNTMzLTE4NC41NTRDMTkyLjYzOCwxNDguMDc0LDIyOC40MTYsMTc0LjY2MiwyNTIuMzg1LDE3NC42NjJ6Ii8+Cjwvc3ZnPgo=) ![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg)

* **iOS:** XCUITest (9.3+)
* **Android:** UiAutomator (4.2+)

***

## appiumGetClipboard[​](#appiumgetclipboard "Direct link to appiumGetClipboard")

Get the content of the system clipboard. This is the raw Appium protocol endpoint. Prefer the `getClipboard` mobile command which provides automatic Appium 3 compatibility with fallback for older drivers.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.github.io/appium.io/docs/en/commands/device/clipboard/get-clipboard/).

caution

This protocol command is deprecated<br />Use the `getClipboard` mobile command (`driver.getClipboard()`) instead

### Usage[​](#usage-64 "Direct link to Usage")

```
await driver.appiumGetClipboard(contentType)
```

### Parameters[​](#parameters-39 "Direct link to Parameters")

| Name                          | Type     | Details                                                                                |
| ----------------------------- | -------- | -------------------------------------------------------------------------------------- |
| `contentType`<br />*optional* | `string` | The type of the content to get. Plaintext, Image, URL. Android supports only plaintext |

### Returns[​](#returns-26 "Direct link to Returns")

* **\<string>** **`response`:** Clipboard content as base64-encoded string or an empty string if the clipboard is empty

### Support[​](#support-55 "Direct link to Support")

![Support for XCUITest (9.3+)](data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iRWJlbmVfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgd2lkdGg9IjQ5Ni4yNTVweCIgaGVpZ2h0PSI2MDguNzI4cHgiIHZpZXdCb3g9IjAgMCA0OTYuMjU1IDYwOC43MjgiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQ5Ni4yNTUgNjA4LjcyODsiCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxwYXRoIHN0eWxlPSJmaWxsOiM5OTk5OTk7IiBkPSJNMjczLjgxLDUyLjk3M0MzMTMuODA2LDAuMjU3LDM2OS40MSwwLDM2OS40MSwwczguMjcxLDQ5LjU2Mi0zMS40NjMsOTcuMzA2CgljLTQyLjQyNiw1MC45OC05MC42NDksNDIuNjM4LTkwLjY0OSw0Mi42MzhTMjM4LjI0Myw5OS44NSwyNzMuODEsNTIuOTczeiIvPgo8cGF0aCBzdHlsZT0iZmlsbDojOTk5OTk5OyIgZD0iTTI1Mi4zODUsMTc0LjY2MmMyMC41NzYsMCw1OC43NjQtMjguMjg0LDEwOC40NzEtMjguMjg0Yzg1LjU2MiwwLDExOS4yMjIsNjAuODgzLDExOS4yMjIsNjAuODgzCglzLTY1LjgzMywzMy42NTktNjUuODMzLDExNS4zMzFjMCw5Mi4xMzMsODIuMDEsMTIzLjg4NSw4Mi4wMSwxMjMuODg1cy01Ny4zMjgsMTYxLjM1Ny0xMzQuNzYyLDE2MS4zNTcKCWMtMzUuNTY1LDAtNjMuMjE1LTIzLjk2Ny0xMDAuNjg4LTIzLjk2N2MtMzguMTg4LDAtNzYuMDg0LDI0Ljg2MS0xMDAuNzY2LDI0Ljg2MUM4OS4zMyw2MDguNzMsMCw0NTUuNjY2LDAsMzMyLjYyOAoJYzAtMTIxLjA1Miw3NS42MTItMTg0LjU1NCwxNDYuNTMzLTE4NC41NTRDMTkyLjYzOCwxNDguMDc0LDIyOC40MTYsMTc0LjY2MiwyNTIuMzg1LDE3NC42NjJ6Ii8+Cjwvc3ZnPgo=) ![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg)

* **iOS:** XCUITest (9.3+)
* **Android:** UiAutomator (4.2+)

***

## touchPerform[​](#touchperform "Direct link to touchPerform")

This functionality is only available from within a native context. 'Touch Perform' works similarly to the other singular touch interactions, except that this allows you to chain together more than one touch action as one command. This is useful because Appium commands are sent over the network and there's latency between commands. This latency can make certain touch interactions impossible because some interactions need to be performed in one sequence. Vertical, for example, requires pressing down, moving to a different y coordinate, and then releasing. For it to work, there can't be a delay between the interactions.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.github.io/appium.io/docs/en/commands/interactions/touch/touch-perform/).

caution

This protocol command is deprecated<br />Use `driver.performActions(...)` instead

### Usage[​](#usage-65 "Direct link to Usage")

```
await driver.touchPerform(actions)
```

### Parameters[​](#parameters-40 "Direct link to Parameters")

| Name      | Type       | Details                                                                |
| --------- | ---------- | ---------------------------------------------------------------------- |
| `actions` | `object[]` | The type of action to perform (e.g. moveTo, release, press, tap, wait) |

### Example[​](#example "Direct link to Example")

```
// do a horizontal swipe by percentage
const startPercentage = 10;
const endPercentage = 90;
const anchorPercentage = 50;

const { width, height } = driver.getWindowSize();
const anchor = height * anchorPercentage / 100;
const startPoint = width * startPercentage / 100;
const endPoint = width * endPercentage / 100;
driver.touchPerform([
  {
    action: 'press',
    options: {
      x: startPoint,
      y: anchor,
    },
  },
  {
    action: 'wait',
    options: {
      ms: 100,
    },
  },
  {
    action: 'moveTo',
    options: {
      x: endPoint,
      y: anchor,
    },
  },
  {
    action: 'release',
    options: {},
  },
]);
```

### Support[​](#support-56 "Direct link to Support")

![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg) ![Support for XCUITest (9.3+), UIAutomation (8.0 to 9.3)](data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iRWJlbmVfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgd2lkdGg9IjQ5Ni4yNTVweCIgaGVpZ2h0PSI2MDguNzI4cHgiIHZpZXdCb3g9IjAgMCA0OTYuMjU1IDYwOC43MjgiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQ5Ni4yNTUgNjA4LjcyODsiCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxwYXRoIHN0eWxlPSJmaWxsOiM5OTk5OTk7IiBkPSJNMjczLjgxLDUyLjk3M0MzMTMuODA2LDAuMjU3LDM2OS40MSwwLDM2OS40MSwwczguMjcxLDQ5LjU2Mi0zMS40NjMsOTcuMzA2CgljLTQyLjQyNiw1MC45OC05MC42NDksNDIuNjM4LTkwLjY0OSw0Mi42MzhTMjM4LjI0Myw5OS44NSwyNzMuODEsNTIuOTczeiIvPgo8cGF0aCBzdHlsZT0iZmlsbDojOTk5OTk5OyIgZD0iTTI1Mi4zODUsMTc0LjY2MmMyMC41NzYsMCw1OC43NjQtMjguMjg0LDEwOC40NzEtMjguMjg0Yzg1LjU2MiwwLDExOS4yMjIsNjAuODgzLDExOS4yMjIsNjAuODgzCglzLTY1LjgzMywzMy42NTktNjUuODMzLDExNS4zMzFjMCw5Mi4xMzMsODIuMDEsMTIzLjg4NSw4Mi4wMSwxMjMuODg1cy01Ny4zMjgsMTYxLjM1Ny0xMzQuNzYyLDE2MS4zNTcKCWMtMzUuNTY1LDAtNjMuMjE1LTIzLjk2Ny0xMDAuNjg4LTIzLjk2N2MtMzguMTg4LDAtNzYuMDg0LDI0Ljg2MS0xMDAuNzY2LDI0Ljg2MUM4OS4zMyw2MDguNzMsMCw0NTUuNjY2LDAsMzMyLjYyOAoJYzAtMTIxLjA1Miw3NS42MTItMTg0LjU1NCwxNDYuNTMzLTE4NC41NTRDMTkyLjYzOCwxNDguMDc0LDIyOC40MTYsMTc0LjY2MiwyNTIuMzg1LDE3NC42NjJ6Ii8+Cjwvc3ZnPgo=) ![Support for Windows (10+)](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA4OCA4OCI+PHBhdGggZD0ibTAgMTIuNDAyIDM1LjY4Ny00Ljg2MDIuMDE1NiAzNC40MjMtMzUuNjcuMjAzMTN6bTM1LjY3IDMzLjUyOS4wMjc3IDM0LjQ1My0zNS42Ny00LjkwNDEtLjAwMi0yOS43OHptNC4zMjYxLTM5LjAyNSA0Ny4zMTgtNi45MDZ2NDEuNTI3bC00Ny4zMTguMzc1NjV6bTQ3LjMyOSAzOS4zNDktLjAxMTEgNDEuMzQtNDcuMzE4LTYuNjc4NC0uMDY2My0zNC43Mzl6IiBmaWxsPSIjMDBhZGVmIi8+PC9zdmc+)

* **Android:** UiAutomator (4.2+)
* **iOS:** XCUITest (9.3+), UIAutomation (8.0 to 9.3)
* **Windows:** Windows (10+)

***

## multiTouchPerform[​](#multitouchperform "Direct link to multiTouchPerform")

This functionality is only available from within a native context. Perform a multi touch action sequence.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.github.io/appium.io/docs/en/commands/interactions/touch/multi-touch-perform/).

caution

This protocol command is deprecated<br />Use `driver.performActions(...)` instead

### Usage[​](#usage-66 "Direct link to Usage")

```
await driver.multiTouchPerform(actions)
```

### Parameters[​](#parameters-41 "Direct link to Parameters")

| Name      | Type       | Details                                                                |
| --------- | ---------- | ---------------------------------------------------------------------- |
| `actions` | `object[]` | The type of action to perform (e.g. moveTo, release, press, tap, wait) |

### Support[​](#support-57 "Direct link to Support")

![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg) ![Support for XCUITest (9.3+), UIAutomation (8.0 to 9.3)](data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iRWJlbmVfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgd2lkdGg9IjQ5Ni4yNTVweCIgaGVpZ2h0PSI2MDguNzI4cHgiIHZpZXdCb3g9IjAgMCA0OTYuMjU1IDYwOC43MjgiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQ5Ni4yNTUgNjA4LjcyODsiCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxwYXRoIHN0eWxlPSJmaWxsOiM5OTk5OTk7IiBkPSJNMjczLjgxLDUyLjk3M0MzMTMuODA2LDAuMjU3LDM2OS40MSwwLDM2OS40MSwwczguMjcxLDQ5LjU2Mi0zMS40NjMsOTcuMzA2CgljLTQyLjQyNiw1MC45OC05MC42NDksNDIuNjM4LTkwLjY0OSw0Mi42MzhTMjM4LjI0Myw5OS44NSwyNzMuODEsNTIuOTczeiIvPgo8cGF0aCBzdHlsZT0iZmlsbDojOTk5OTk5OyIgZD0iTTI1Mi4zODUsMTc0LjY2MmMyMC41NzYsMCw1OC43NjQtMjguMjg0LDEwOC40NzEtMjguMjg0Yzg1LjU2MiwwLDExOS4yMjIsNjAuODgzLDExOS4yMjIsNjAuODgzCglzLTY1LjgzMywzMy42NTktNjUuODMzLDExNS4zMzFjMCw5Mi4xMzMsODIuMDEsMTIzLjg4NSw4Mi4wMSwxMjMuODg1cy01Ny4zMjgsMTYxLjM1Ny0xMzQuNzYyLDE2MS4zNTcKCWMtMzUuNTY1LDAtNjMuMjE1LTIzLjk2Ny0xMDAuNjg4LTIzLjk2N2MtMzguMTg4LDAtNzYuMDg0LDI0Ljg2MS0xMDAuNzY2LDI0Ljg2MUM4OS4zMyw2MDguNzMsMCw0NTUuNjY2LDAsMzMyLjYyOAoJYzAtMTIxLjA1Miw3NS42MTItMTg0LjU1NCwxNDYuNTMzLTE4NC41NTRDMTkyLjYzOCwxNDguMDc0LDIyOC40MTYsMTc0LjY2MiwyNTIuMzg1LDE3NC42NjJ6Ii8+Cjwvc3ZnPgo=) ![Support for Windows (10+)](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA4OCA4OCI+PHBhdGggZD0ibTAgMTIuNDAyIDM1LjY4Ny00Ljg2MDIuMDE1NiAzNC40MjMtMzUuNjcuMjAzMTN6bTM1LjY3IDMzLjUyOS4wMjc3IDM0LjQ1My0zNS42Ny00LjkwNDEtLjAwMi0yOS43OHptNC4zMjYxLTM5LjAyNSA0Ny4zMTgtNi45MDZ2NDEuNTI3bC00Ny4zMTguMzc1NjV6bTQ3LjMyOSAzOS4zNDktLjAxMTEgNDEuMzQtNDcuMzE4LTYuNjc4NC0uMDY2My0zNC43Mzl6IiBmaWxsPSIjMDBhZGVmIi8+PC9zdmc+)

* **Android:** UiAutomator (4.2+)
* **iOS:** XCUITest (9.3+), UIAutomation (8.0 to 9.3)
* **Windows:** Windows (10+)

***

## executeDriverScript[​](#executedriverscript "Direct link to executeDriverScript")

Execute a script in a child process. This approach helps minimize potential latency associated with each command. ***Using this command in Appium 2 or later requires installing the [`execute-driver`](https://github.com/appium/appium/tree/master/packages/execute-driver-plugin) plugin.***<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.io/docs/en/latest/reference/api/plugins/#executedriverscript).

### Usage[​](#usage-67 "Direct link to Usage")

```
await driver.executeDriverScript(script, type, timeout)
```

### Parameters[​](#parameters-42 "Direct link to Parameters")

| Name                      | Type     | Details                                                                                                                                        |
| ------------------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| `script`                  | `string` | The script to execute. It has access to a 'driver' object which represents a WebdriverIO session attached to the current server.               |
| `type`<br />*optional*    | `string` | The language/framework used in the script. Currently, only 'webdriverio' is supported and is the default.                                      |
| `timeout`<br />*optional* | `number` | The number of milliseconds the script should be allowed to run before being killed by the Appium server. Defaults to the equivalent of 1 hour. |

### Returns[​](#returns-27 "Direct link to Returns")

* **\<object>** **`result`:** An object containing two fields: 'result', which is the return value of the script itself, and 'logs', which contains 3 inner fields, 'log', 'warn', and 'error', which hold an array of strings logged by console.log, console.warn, and console.error in the script's execution.

***

## getEvents[​](#getevents "Direct link to getEvents")

Get events logged in the current session.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.io/docs/en/latest/reference/api/appium/#getlogevents).

### Usage[​](#usage-68 "Direct link to Usage")

```
await driver.getEvents(type)
```

### Parameters[​](#parameters-43 "Direct link to Parameters")

| Name                   | Type               | Details                                               |
| ---------------------- | ------------------ | ----------------------------------------------------- |
| `type`<br />*optional* | `string, string[]` | One or more event types to filter the returned events |

### Returns[​](#returns-28 "Direct link to Returns")

* **\<object>** **`result`:** A JSON hash of events like `{'commands' => [{'cmd' => 123455, ....}], 'startTime' => 1572954894127, }`.

### Support[​](#support-58 "Direct link to Support")

![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg) ![Support for XCUITest (9.3+)](data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iRWJlbmVfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgd2lkdGg9IjQ5Ni4yNTVweCIgaGVpZ2h0PSI2MDguNzI4cHgiIHZpZXdCb3g9IjAgMCA0OTYuMjU1IDYwOC43MjgiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQ5Ni4yNTUgNjA4LjcyODsiCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxwYXRoIHN0eWxlPSJmaWxsOiM5OTk5OTk7IiBkPSJNMjczLjgxLDUyLjk3M0MzMTMuODA2LDAuMjU3LDM2OS40MSwwLDM2OS40MSwwczguMjcxLDQ5LjU2Mi0zMS40NjMsOTcuMzA2CgljLTQyLjQyNiw1MC45OC05MC42NDksNDIuNjM4LTkwLjY0OSw0Mi42MzhTMjM4LjI0Myw5OS44NSwyNzMuODEsNTIuOTczeiIvPgo8cGF0aCBzdHlsZT0iZmlsbDojOTk5OTk5OyIgZD0iTTI1Mi4zODUsMTc0LjY2MmMyMC41NzYsMCw1OC43NjQtMjguMjg0LDEwOC40NzEtMjguMjg0Yzg1LjU2MiwwLDExOS4yMjIsNjAuODgzLDExOS4yMjIsNjAuODgzCglzLTY1LjgzMywzMy42NTktNjUuODMzLDExNS4zMzFjMCw5Mi4xMzMsODIuMDEsMTIzLjg4NSw4Mi4wMSwxMjMuODg1cy01Ny4zMjgsMTYxLjM1Ny0xMzQuNzYyLDE2MS4zNTcKCWMtMzUuNTY1LDAtNjMuMjE1LTIzLjk2Ny0xMDAuNjg4LTIzLjk2N2MtMzguMTg4LDAtNzYuMDg0LDI0Ljg2MS0xMDAuNzY2LDI0Ljg2MUM4OS4zMyw2MDguNzMsMCw0NTUuNjY2LDAsMzMyLjYyOAoJYzAtMTIxLjA1Miw3NS42MTItMTg0LjU1NCwxNDYuNTMzLTE4NC41NTRDMTkyLjYzOCwxNDguMDc0LDIyOC40MTYsMTc0LjY2MiwyNTIuMzg1LDE3NC42NjJ6Ii8+Cjwvc3ZnPgo=)

* **Android:** UiAutomator (4.2+)
* **iOS:** XCUITest (9.3+)

***

## logEvent[​](#logevent "Direct link to logEvent")

Log a custom event.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.io/docs/en/latest/reference/api/appium/#logcustomevent).

### Usage[​](#usage-69 "Direct link to Usage")

```
await driver.logEvent(vendor, event)
```

### Parameters[​](#parameters-44 "Direct link to Parameters")

| Name     | Type     | Details                                                 |
| -------- | -------- | ------------------------------------------------------- |
| `vendor` | `string` | Name of the namespace (vendor) used to prefix the event |
| `event`  | `string` | Name of the event                                       |

### Support[​](#support-59 "Direct link to Support")

![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg) ![Support for XCUITest (9.3+)](data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iRWJlbmVfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgd2lkdGg9IjQ5Ni4yNTVweCIgaGVpZ2h0PSI2MDguNzI4cHgiIHZpZXdCb3g9IjAgMCA0OTYuMjU1IDYwOC43MjgiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQ5Ni4yNTUgNjA4LjcyODsiCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxwYXRoIHN0eWxlPSJmaWxsOiM5OTk5OTk7IiBkPSJNMjczLjgxLDUyLjk3M0MzMTMuODA2LDAuMjU3LDM2OS40MSwwLDM2OS40MSwwczguMjcxLDQ5LjU2Mi0zMS40NjMsOTcuMzA2CgljLTQyLjQyNiw1MC45OC05MC42NDksNDIuNjM4LTkwLjY0OSw0Mi42MzhTMjM4LjI0Myw5OS44NSwyNzMuODEsNTIuOTczeiIvPgo8cGF0aCBzdHlsZT0iZmlsbDojOTk5OTk5OyIgZD0iTTI1Mi4zODUsMTc0LjY2MmMyMC41NzYsMCw1OC43NjQtMjguMjg0LDEwOC40NzEtMjguMjg0Yzg1LjU2MiwwLDExOS4yMjIsNjAuODgzLDExOS4yMjIsNjAuODgzCglzLTY1LjgzMywzMy42NTktNjUuODMzLDExNS4zMzFjMCw5Mi4xMzMsODIuMDEsMTIzLjg4NSw4Mi4wMSwxMjMuODg1cy01Ny4zMjgsMTYxLjM1Ny0xMzQuNzYyLDE2MS4zNTcKCWMtMzUuNTY1LDAtNjMuMjE1LTIzLjk2Ny0xMDAuNjg4LTIzLjk2N2MtMzguMTg4LDAtNzYuMDg0LDI0Ljg2MS0xMDAuNzY2LDI0Ljg2MUM4OS4zMyw2MDguNzMsMCw0NTUuNjY2LDAsMzMyLjYyOAoJYzAtMTIxLjA1Miw3NS42MTItMTg0LjU1NCwxNDYuNTMzLTE4NC41NTRDMTkyLjYzOCwxNDguMDc0LDIyOC40MTYsMTc0LjY2MiwyNTIuMzg1LDE3NC42NjJ6Ii8+Cjwvc3ZnPgo=)

* **Android:** UiAutomator (4.2+)
* **iOS:** XCUITest (9.3+)

***

## compareImages[​](#compareimages "Direct link to compareImages")

Compare two images using the specified mode of comparison. ***Using this command in Appium 2 or later requires installing the [`images`](https://github.com/appium/appium/tree/master/packages/images-plugin) plugin.***<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.io/docs/en/latest/reference/api/plugins/#compareimages).

### Usage[​](#usage-70 "Direct link to Usage")

```
await driver.compareImages(mode, firstImage, secondImage, options)
```

### Parameters[​](#parameters-45 "Direct link to Parameters")

| Name                                      | Type     | Details                                                                                                      |
| ----------------------------------------- | -------- | ------------------------------------------------------------------------------------------------------------ |
| `mode`                                    | `string` | One of possible comparison modes: 'matchFeatures', 'getSimilarity', 'matchTemplate'.                         |
| `firstImage`                              | `string` | Base64-encoded image file.                                                                                   |
| `secondImage`                             | `string` | Base64-encoded image file.                                                                                   |
| `options=[object Object]`<br />*optional* | `object` | The supported values of this property depend on the `mode` value. See Appium documentation for more details. |

### Returns[​](#returns-29 "Direct link to Returns")

* **\<object>** **`result`:** The content of the resulting dictionary depends on the `mode` and `options` values. See Appium documentation for more details.

***

## implicitWait[​](#implicitwait "Direct link to implicitWait")

Set the amount of time the driver should wait when searching for elements. When searching for a single element, the driver should poll the page until an element is found or the timeout expires, whichever occurs first. When searching for multiple elements, the driver should poll the page until at least one element is found or the timeout expires, at which point it should return an empty list. If this command is never sent, the driver should default to an implicit wait of 0ms.<br /><br />Appium command. More details can be found in the [official protocol docs](https://github.com/appium/appium/blob/master/packages/base-driver/docs/mjsonwp/protocol-methods.md#webdriver-endpoints).

caution

This protocol command is deprecated<br />Use `driver.setTimeouts(...)` instead

### Usage[​](#usage-71 "Direct link to Usage")

```
await driver.implicitWait(ms)
```

### Parameters[​](#parameters-46 "Direct link to Parameters")

| Name | Type     | Details                                                     |
| ---- | -------- | ----------------------------------------------------------- |
| `ms` | `number` | The amount of time, in milliseconds, to wait on an element. |

### Support[​](#support-60 "Direct link to Support")

![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg) ![Support for XCUITest (9.3+)](data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iRWJlbmVfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgd2lkdGg9IjQ5Ni4yNTVweCIgaGVpZ2h0PSI2MDguNzI4cHgiIHZpZXdCb3g9IjAgMCA0OTYuMjU1IDYwOC43MjgiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQ5Ni4yNTUgNjA4LjcyODsiCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxwYXRoIHN0eWxlPSJmaWxsOiM5OTk5OTk7IiBkPSJNMjczLjgxLDUyLjk3M0MzMTMuODA2LDAuMjU3LDM2OS40MSwwLDM2OS40MSwwczguMjcxLDQ5LjU2Mi0zMS40NjMsOTcuMzA2CgljLTQyLjQyNiw1MC45OC05MC42NDksNDIuNjM4LTkwLjY0OSw0Mi42MzhTMjM4LjI0Myw5OS44NSwyNzMuODEsNTIuOTczeiIvPgo8cGF0aCBzdHlsZT0iZmlsbDojOTk5OTk5OyIgZD0iTTI1Mi4zODUsMTc0LjY2MmMyMC41NzYsMCw1OC43NjQtMjguMjg0LDEwOC40NzEtMjguMjg0Yzg1LjU2MiwwLDExOS4yMjIsNjAuODgzLDExOS4yMjIsNjAuODgzCglzLTY1LjgzMywzMy42NTktNjUuODMzLDExNS4zMzFjMCw5Mi4xMzMsODIuMDEsMTIzLjg4NSw4Mi4wMSwxMjMuODg1cy01Ny4zMjgsMTYxLjM1Ny0xMzQuNzYyLDE2MS4zNTcKCWMtMzUuNTY1LDAtNjMuMjE1LTIzLjk2Ny0xMDAuNjg4LTIzLjk2N2MtMzguMTg4LDAtNzYuMDg0LDI0Ljg2MS0xMDAuNzY2LDI0Ljg2MUM4OS4zMyw2MDguNzMsMCw0NTUuNjY2LDAsMzMyLjYyOAoJYzAtMTIxLjA1Miw3NS42MTItMTg0LjU1NCwxNDYuNTMzLTE4NC41NTRDMTkyLjYzOCwxNDguMDc0LDIyOC40MTYsMTc0LjY2MiwyNTIuMzg1LDE3NC42NjJ6Ii8+Cjwvc3ZnPgo=)

* **Android:** UiAutomator (4.2+)
* **iOS:** XCUITest (9.3+)

***

## getLocationInView[​](#getlocationinview "Direct link to getLocationInView")

Determine an element's location on the screen once it has been scrolled into view.<br /><br />**Note:** This is considered an internal command and should only be used to determine an element's location for correctly generating native events.<br /><br />Appium command. More details can be found in the [official protocol docs](https://github.com/appium/appium/blob/master/packages/base-driver/docs/mjsonwp/protocol-methods.md#webdriver-endpoints).

caution

This protocol command is deprecated<br />Use `driver.getElementRect(...)` or `element.getLocation()` instead

### Usage[​](#usage-72 "Direct link to Usage")

```
await driver.getLocationInView(elementId)
```

### Parameters[​](#parameters-47 "Direct link to Parameters")

| Name        | Type     | Details                                   |
| ----------- | -------- | ----------------------------------------- |
| `elementId` | `String` | ID of the element to route the command to |

### Returns[​](#returns-30 "Direct link to Returns")

* **\<Object>** **`location`:** The X and Y coordinates for the element on the page.

### Support[​](#support-61 "Direct link to Support")

![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg) ![Support for XCUITest (9.3+)](data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iRWJlbmVfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgd2lkdGg9IjQ5Ni4yNTVweCIgaGVpZ2h0PSI2MDguNzI4cHgiIHZpZXdCb3g9IjAgMCA0OTYuMjU1IDYwOC43MjgiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQ5Ni4yNTUgNjA4LjcyODsiCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxwYXRoIHN0eWxlPSJmaWxsOiM5OTk5OTk7IiBkPSJNMjczLjgxLDUyLjk3M0MzMTMuODA2LDAuMjU3LDM2OS40MSwwLDM2OS40MSwwczguMjcxLDQ5LjU2Mi0zMS40NjMsOTcuMzA2CgljLTQyLjQyNiw1MC45OC05MC42NDksNDIuNjM4LTkwLjY0OSw0Mi42MzhTMjM4LjI0Myw5OS44NSwyNzMuODEsNTIuOTczeiIvPgo8cGF0aCBzdHlsZT0iZmlsbDojOTk5OTk5OyIgZD0iTTI1Mi4zODUsMTc0LjY2MmMyMC41NzYsMCw1OC43NjQtMjguMjg0LDEwOC40NzEtMjguMjg0Yzg1LjU2MiwwLDExOS4yMjIsNjAuODgzLDExOS4yMjIsNjAuODgzCglzLTY1LjgzMywzMy42NTktNjUuODMzLDExNS4zMzFjMCw5Mi4xMzMsODIuMDEsMTIzLjg4NSw4Mi4wMSwxMjMuODg1cy01Ny4zMjgsMTYxLjM1Ny0xMzQuNzYyLDE2MS4zNTcKCWMtMzUuNTY1LDAtNjMuMjE1LTIzLjk2Ny0xMDAuNjg4LTIzLjk2N2MtMzguMTg4LDAtNzYuMDg0LDI0Ljg2MS0xMDAuNzY2LDI0Ljg2MUM4OS4zMyw2MDguNzMsMCw0NTUuNjY2LDAsMzMyLjYyOAoJYzAtMTIxLjA1Miw3NS42MTItMTg0LjU1NCwxNDYuNTMzLTE4NC41NTRDMTkyLjYzOCwxNDguMDc0LDIyOC40MTYsMTc0LjY2MiwyNTIuMzg1LDE3NC42NjJ6Ii8+Cjwvc3ZnPgo=)

* **Android:** UiAutomator (4.2+)
* **iOS:** XCUITest (9.3+)

***

## sendKeys[​](#sendkeys "Direct link to sendKeys")

Send a sequence of key strokes to the active element<br /><br />Appium command. More details can be found in the [official protocol docs](https://github.com/appium/appium/blob/master/packages/base-driver/docs/mjsonwp/protocol-methods.md#webdriver-endpoints).

caution

This protocol command is deprecated<br />Use `driver.performActions(...)` with `keyUp` and `keyDown` actions instead

### Usage[​](#usage-73 "Direct link to Usage")

```
await driver.sendKeys(value)
```

### Parameters[​](#parameters-48 "Direct link to Parameters")

| Name    | Type       | Details                                                  |
| ------- | ---------- | -------------------------------------------------------- |
| `value` | `string[]` | The sequence of keys to type. An array must be provided. |

### Support[​](#support-62 "Direct link to Support")

![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg) ![Support for XCUITest (9.3+)](data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iRWJlbmVfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgd2lkdGg9IjQ5Ni4yNTVweCIgaGVpZ2h0PSI2MDguNzI4cHgiIHZpZXdCb3g9IjAgMCA0OTYuMjU1IDYwOC43MjgiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQ5Ni4yNTUgNjA4LjcyODsiCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxwYXRoIHN0eWxlPSJmaWxsOiM5OTk5OTk7IiBkPSJNMjczLjgxLDUyLjk3M0MzMTMuODA2LDAuMjU3LDM2OS40MSwwLDM2OS40MSwwczguMjcxLDQ5LjU2Mi0zMS40NjMsOTcuMzA2CgljLTQyLjQyNiw1MC45OC05MC42NDksNDIuNjM4LTkwLjY0OSw0Mi42MzhTMjM4LjI0Myw5OS44NSwyNzMuODEsNTIuOTczeiIvPgo8cGF0aCBzdHlsZT0iZmlsbDojOTk5OTk5OyIgZD0iTTI1Mi4zODUsMTc0LjY2MmMyMC41NzYsMCw1OC43NjQtMjguMjg0LDEwOC40NzEtMjguMjg0Yzg1LjU2MiwwLDExOS4yMjIsNjAuODgzLDExOS4yMjIsNjAuODgzCglzLTY1LjgzMywzMy42NTktNjUuODMzLDExNS4zMzFjMCw5Mi4xMzMsODIuMDEsMTIzLjg4NSw4Mi4wMSwxMjMuODg1cy01Ny4zMjgsMTYxLjM1Ny0xMzQuNzYyLDE2MS4zNTcKCWMtMzUuNTY1LDAtNjMuMjE1LTIzLjk2Ny0xMDAuNjg4LTIzLjk2N2MtMzguMTg4LDAtNzYuMDg0LDI0Ljg2MS0xMDAuNzY2LDI0Ljg2MUM4OS4zMyw2MDguNzMsMCw0NTUuNjY2LDAsMzMyLjYyOAoJYzAtMTIxLjA1Miw3NS42MTItMTg0LjU1NCwxNDYuNTMzLTE4NC41NTRDMTkyLjYzOCwxNDguMDc0LDIyOC40MTYsMTc0LjY2MiwyNTIuMzg1LDE3NC42NjJ6Ii8+Cjwvc3ZnPgo=)

* **Android:** UiAutomator (4.2+)
* **iOS:** XCUITest (9.3+)

***

## availableIMEEngines[​](#availableimeengines "Direct link to availableIMEEngines")

List all available IME engines on the device. To use an engine, it has to be present in this list.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.io/docs/en/latest/reference/api/jsonwp/#availableimeengines).

### Usage[​](#usage-74 "Direct link to Usage")

```
await driver.availableIMEEngines()
```

### Returns[​](#returns-31 "Direct link to Returns")

* **\<String\[]>** **`engines`:** A list of available engines

### Support[​](#support-63 "Direct link to Support")

![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg)

* **Android:** UiAutomator (4.2+)

***

## getActiveIMEEngine[​](#getactiveimeengine "Direct link to getActiveIMEEngine")

Get the name of the active IME engine. The name string is platform specific.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.io/docs/en/latest/reference/api/jsonwp/#getactiveimeengine).

### Usage[​](#usage-75 "Direct link to Usage")

```
await driver.getActiveIMEEngine()
```

### Returns[​](#returns-32 "Direct link to Returns")

* **\<String>** **`engine`:** The name of the active IME engine

### Support[​](#support-64 "Direct link to Support")

![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg)

* **Android:** UiAutomator (4.2+)

***

## isIMEActivated[​](#isimeactivated "Direct link to isIMEActivated")

Indicates whether IME input is active at the moment<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.io/docs/en/latest/reference/api/jsonwp/#isimeactivated).

### Usage[​](#usage-76 "Direct link to Usage")

```
await driver.isIMEActivated()
```

### Returns[​](#returns-33 "Direct link to Returns")

* **\<Boolean>** **`isActive`:** true if IME input is available and currently active, false otherwise

### Support[​](#support-65 "Direct link to Support")

![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg)

* **Android:** UiAutomator (4.2+)

***

## deactivateIMEEngine[​](#deactivateimeengine "Direct link to deactivateIMEEngine")

De-activates the currently-active IME engine.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.io/docs/en/latest/reference/api/jsonwp/#deactivateimeengine).

### Usage[​](#usage-77 "Direct link to Usage")

```
await driver.deactivateIMEEngine()
```

### Support[​](#support-66 "Direct link to Support")

![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg)

* **Android:** UiAutomator (4.2+)

***

## activateIMEEngine[​](#activateimeengine "Direct link to activateIMEEngine")

Activates an IME engine.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.io/docs/en/latest/reference/api/jsonwp/#activateimeengine).

### Usage[​](#usage-78 "Direct link to Usage")

```
await driver.activateIMEEngine(engine)
```

### Parameters[​](#parameters-49 "Direct link to Parameters")

| Name     | Type     | Details                        |
| -------- | -------- | ------------------------------ |
| `engine` | `string` | name of the engine to activate |

### Support[​](#support-67 "Direct link to Support")

![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg)

* **Android:** UiAutomator (4.2+)

***

## asyncScriptTimeout[​](#asyncscripttimeout "Direct link to asyncScriptTimeout")

Set the amount of time, in milliseconds, that asynchronous scripts executed by `/session/:sessionId/execute_async` are permitted to run before they are aborted and a `Timeout` error is returned to the client.<br /><br />Appium command. More details can be found in the [official protocol docs](https://github.com/appium/appium/blob/master/packages/base-driver/docs/mjsonwp/protocol-methods.md#webdriver-endpoints).

caution

This protocol command is deprecated<br />Use `driver.setTimeouts(...)` instead

### Usage[​](#usage-79 "Direct link to Usage")

```
await driver.asyncScriptTimeout(ms)
```

### Parameters[​](#parameters-50 "Direct link to Parameters")

| Name | Type     | Details                                                                              |
| ---- | -------- | ------------------------------------------------------------------------------------ |
| `ms` | `number` | The amount of time, in milliseconds, that time-limited commands are permitted to run |

### Support[​](#support-68 "Direct link to Support")

![Support for XCUITest (9.3+)](data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iRWJlbmVfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgd2lkdGg9IjQ5Ni4yNTVweCIgaGVpZ2h0PSI2MDguNzI4cHgiIHZpZXdCb3g9IjAgMCA0OTYuMjU1IDYwOC43MjgiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQ5Ni4yNTUgNjA4LjcyODsiCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxwYXRoIHN0eWxlPSJmaWxsOiM5OTk5OTk7IiBkPSJNMjczLjgxLDUyLjk3M0MzMTMuODA2LDAuMjU3LDM2OS40MSwwLDM2OS40MSwwczguMjcxLDQ5LjU2Mi0zMS40NjMsOTcuMzA2CgljLTQyLjQyNiw1MC45OC05MC42NDksNDIuNjM4LTkwLjY0OSw0Mi42MzhTMjM4LjI0Myw5OS44NSwyNzMuODEsNTIuOTczeiIvPgo8cGF0aCBzdHlsZT0iZmlsbDojOTk5OTk5OyIgZD0iTTI1Mi4zODUsMTc0LjY2MmMyMC41NzYsMCw1OC43NjQtMjguMjg0LDEwOC40NzEtMjguMjg0Yzg1LjU2MiwwLDExOS4yMjIsNjAuODgzLDExOS4yMjIsNjAuODgzCglzLTY1LjgzMywzMy42NTktNjUuODMzLDExNS4zMzFjMCw5Mi4xMzMsODIuMDEsMTIzLjg4NSw4Mi4wMSwxMjMuODg1cy01Ny4zMjgsMTYxLjM1Ny0xMzQuNzYyLDE2MS4zNTcKCWMtMzUuNTY1LDAtNjMuMjE1LTIzLjk2Ny0xMDAuNjg4LTIzLjk2N2MtMzguMTg4LDAtNzYuMDg0LDI0Ljg2MS0xMDAuNzY2LDI0Ljg2MUM4OS4zMyw2MDguNzMsMCw0NTUuNjY2LDAsMzMyLjYyOAoJYzAtMTIxLjA1Miw3NS42MTItMTg0LjU1NCwxNDYuNTMzLTE4NC41NTRDMTkyLjYzOCwxNDguMDc0LDIyOC40MTYsMTc0LjY2MiwyNTIuMzg1LDE3NC42NjJ6Ii8+Cjwvc3ZnPgo=)

* **iOS:** XCUITest (9.3+)

***

## submit[​](#submit "Direct link to submit")

Submit a form element.<br /><br />Appium command. More details can be found in the [official protocol docs](https://github.com/appium/appium/blob/master/packages/base-driver/docs/mjsonwp/protocol-methods.md#webdriver-endpoints).

caution

This protocol command is deprecated<br />Please explicitly find and click the submit element

### Usage[​](#usage-80 "Direct link to Usage")

```
await driver.submit(elementId)
```

### Parameters[​](#parameters-51 "Direct link to Parameters")

| Name        | Type     | Details                                |
| ----------- | -------- | -------------------------------------- |
| `elementId` | `String` | ID of the form element to be submitted |

### Support[​](#support-69 "Direct link to Support")

![Support for XCUITest (9.3+)](data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iRWJlbmVfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgd2lkdGg9IjQ5Ni4yNTVweCIgaGVpZ2h0PSI2MDguNzI4cHgiIHZpZXdCb3g9IjAgMCA0OTYuMjU1IDYwOC43MjgiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQ5Ni4yNTUgNjA4LjcyODsiCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxwYXRoIHN0eWxlPSJmaWxsOiM5OTk5OTk7IiBkPSJNMjczLjgxLDUyLjk3M0MzMTMuODA2LDAuMjU3LDM2OS40MSwwLDM2OS40MSwwczguMjcxLDQ5LjU2Mi0zMS40NjMsOTcuMzA2CgljLTQyLjQyNiw1MC45OC05MC42NDksNDIuNjM4LTkwLjY0OSw0Mi42MzhTMjM4LjI0Myw5OS44NSwyNzMuODEsNTIuOTczeiIvPgo8cGF0aCBzdHlsZT0iZmlsbDojOTk5OTk5OyIgZD0iTTI1Mi4zODUsMTc0LjY2MmMyMC41NzYsMCw1OC43NjQtMjguMjg0LDEwOC40NzEtMjguMjg0Yzg1LjU2MiwwLDExOS4yMjIsNjAuODgzLDExOS4yMjIsNjAuODgzCglzLTY1LjgzMywzMy42NTktNjUuODMzLDExNS4zMzFjMCw5Mi4xMzMsODIuMDEsMTIzLjg4NSw4Mi4wMSwxMjMuODg1cy01Ny4zMjgsMTYxLjM1Ny0xMzQuNzYyLDE2MS4zNTcKCWMtMzUuNTY1LDAtNjMuMjE1LTIzLjk2Ny0xMDAuNjg4LTIzLjk2N2MtMzguMTg4LDAtNzYuMDg0LDI0Ljg2MS0xMDAuNzY2LDI0Ljg2MUM4OS4zMyw2MDguNzMsMCw0NTUuNjY2LDAsMzMyLjYyOAoJYzAtMTIxLjA1Miw3NS42MTItMTg0LjU1NCwxNDYuNTMzLTE4NC41NTRDMTkyLjYzOCwxNDguMDc0LDIyOC40MTYsMTc0LjY2MiwyNTIuMzg1LDE3NC42NjJ6Ii8+Cjwvc3ZnPgo=)

* **iOS:** XCUITest (9.3+)

***

## getElementSize[​](#getelementsize "Direct link to getElementSize")

Determine an element's size in pixels. The size will be returned as a JSON object with `width` and `height` properties.<br /><br />Appium command. More details can be found in the [official protocol docs](https://github.com/appium/appium/blob/master/packages/base-driver/docs/mjsonwp/protocol-methods.md#webdriver-endpoints).

caution

This protocol command is deprecated<br />Use `driver.getElementRect(...)` or `element.getSize()` instead

### Usage[​](#usage-81 "Direct link to Usage")

```
await driver.getElementSize(elementId)
```

### Parameters[​](#parameters-52 "Direct link to Parameters")

| Name        | Type     | Details                                   |
| ----------- | -------- | ----------------------------------------- |
| `elementId` | `String` | ID of the element to route the command to |

### Returns[​](#returns-34 "Direct link to Returns")

* **\<Object>** **`size`:** The width and height of the element, in pixels.

### Support[​](#support-70 "Direct link to Support")

![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg) ![Support for XCUITest (9.3+)](data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iRWJlbmVfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgd2lkdGg9IjQ5Ni4yNTVweCIgaGVpZ2h0PSI2MDguNzI4cHgiIHZpZXdCb3g9IjAgMCA0OTYuMjU1IDYwOC43MjgiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQ5Ni4yNTUgNjA4LjcyODsiCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxwYXRoIHN0eWxlPSJmaWxsOiM5OTk5OTk7IiBkPSJNMjczLjgxLDUyLjk3M0MzMTMuODA2LDAuMjU3LDM2OS40MSwwLDM2OS40MSwwczguMjcxLDQ5LjU2Mi0zMS40NjMsOTcuMzA2CgljLTQyLjQyNiw1MC45OC05MC42NDksNDIuNjM4LTkwLjY0OSw0Mi42MzhTMjM4LjI0Myw5OS44NSwyNzMuODEsNTIuOTczeiIvPgo8cGF0aCBzdHlsZT0iZmlsbDojOTk5OTk5OyIgZD0iTTI1Mi4zODUsMTc0LjY2MmMyMC41NzYsMCw1OC43NjQtMjguMjg0LDEwOC40NzEtMjguMjg0Yzg1LjU2MiwwLDExOS4yMjIsNjAuODgzLDExOS4yMjIsNjAuODgzCglzLTY1LjgzMywzMy42NTktNjUuODMzLDExNS4zMzFjMCw5Mi4xMzMsODIuMDEsMTIzLjg4NSw4Mi4wMSwxMjMuODg1cy01Ny4zMjgsMTYxLjM1Ny0xMzQuNzYyLDE2MS4zNTcKCWMtMzUuNTY1LDAtNjMuMjE1LTIzLjk2Ny0xMDAuNjg4LTIzLjk2N2MtMzguMTg4LDAtNzYuMDg0LDI0Ljg2MS0xMDAuNzY2LDI0Ljg2MUM4OS4zMyw2MDguNzMsMCw0NTUuNjY2LDAsMzMyLjYyOAoJYzAtMTIxLjA1Miw3NS42MTItMTg0LjU1NCwxNDYuNTMzLTE4NC41NTRDMTkyLjYzOCwxNDguMDc0LDIyOC40MTYsMTc0LjY2MiwyNTIuMzg1LDE3NC42NjJ6Ii8+Cjwvc3ZnPgo=)

* **Android:** UiAutomator (4.2+)
* **iOS:** XCUITest (9.3+)

***

## getElementLocation[​](#getelementlocation "Direct link to getElementLocation")

Determine an element's location on the page. The point `(0, 0)` refers to the upper-left corner of the page. The element's coordinates are returned as a JSON object with `x` and `y` properties.<br /><br />Appium command. More details can be found in the [official protocol docs](https://github.com/appium/appium/blob/master/packages/base-driver/docs/mjsonwp/protocol-methods.md#webdriver-endpoints).

caution

This protocol command is deprecated<br />Use `driver.getElementRect(...)` or `element.getLocation()` instead

### Usage[​](#usage-82 "Direct link to Usage")

```
await driver.getElementLocation(elementId)
```

### Parameters[​](#parameters-53 "Direct link to Parameters")

| Name        | Type     | Details                                   |
| ----------- | -------- | ----------------------------------------- |
| `elementId` | `String` | ID of the element to route the command to |

### Returns[​](#returns-35 "Direct link to Returns")

* **\<Object>** **`location`:** The X and Y coordinates for the element on the page.

### Support[​](#support-71 "Direct link to Support")

![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg) ![Support for XCUITest (9.3+)](data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iRWJlbmVfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgd2lkdGg9IjQ5Ni4yNTVweCIgaGVpZ2h0PSI2MDguNzI4cHgiIHZpZXdCb3g9IjAgMCA0OTYuMjU1IDYwOC43MjgiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQ5Ni4yNTUgNjA4LjcyODsiCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxwYXRoIHN0eWxlPSJmaWxsOiM5OTk5OTk7IiBkPSJNMjczLjgxLDUyLjk3M0MzMTMuODA2LDAuMjU3LDM2OS40MSwwLDM2OS40MSwwczguMjcxLDQ5LjU2Mi0zMS40NjMsOTcuMzA2CgljLTQyLjQyNiw1MC45OC05MC42NDksNDIuNjM4LTkwLjY0OSw0Mi42MzhTMjM4LjI0Myw5OS44NSwyNzMuODEsNTIuOTczeiIvPgo8cGF0aCBzdHlsZT0iZmlsbDojOTk5OTk5OyIgZD0iTTI1Mi4zODUsMTc0LjY2MmMyMC41NzYsMCw1OC43NjQtMjguMjg0LDEwOC40NzEtMjguMjg0Yzg1LjU2MiwwLDExOS4yMjIsNjAuODgzLDExOS4yMjIsNjAuODgzCglzLTY1LjgzMywzMy42NTktNjUuODMzLDExNS4zMzFjMCw5Mi4xMzMsODIuMDEsMTIzLjg4NSw4Mi4wMSwxMjMuODg1cy01Ny4zMjgsMTYxLjM1Ny0xMzQuNzYyLDE2MS4zNTcKCWMtMzUuNTY1LDAtNjMuMjE1LTIzLjk2Ny0xMDAuNjg4LTIzLjk2N2MtMzguMTg4LDAtNzYuMDg0LDI0Ljg2MS0xMDAuNzY2LDI0Ljg2MUM4OS4zMyw2MDguNzMsMCw0NTUuNjY2LDAsMzMyLjYyOAoJYzAtMTIxLjA1Miw3NS42MTItMTg0LjU1NCwxNDYuNTMzLTE4NC41NTRDMTkyLjYzOCwxNDguMDc0LDIyOC40MTYsMTc0LjY2MiwyNTIuMzg1LDE3NC42NjJ6Ii8+Cjwvc3ZnPgo=)

* **Android:** UiAutomator (4.2+)
* **iOS:** XCUITest (9.3+)

***

## touchClick[​](#touchclick "Direct link to touchClick")

Single tap on the touch enabled device.<br /><br />Appium command. More details can be found in the [official protocol docs](https://github.com/appium/appium/blob/master/packages/base-driver/docs/mjsonwp/protocol-methods.md#webdriver-endpoints).

caution

This protocol command is deprecated<br />Use `driver.performActions(...)` with `pointerDown` and `pointerUp` actions instead

### Usage[​](#usage-83 "Direct link to Usage")

```
await driver.touchClick(element)
```

### Parameters[​](#parameters-54 "Direct link to Parameters")

| Name      | Type     | Details                             |
| --------- | -------- | ----------------------------------- |
| `element` | `string` | ID of the element to single tap on. |

### Support[​](#support-72 "Direct link to Support")

![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg) ![Support for XCUITest (9.3+)](data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iRWJlbmVfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgd2lkdGg9IjQ5Ni4yNTVweCIgaGVpZ2h0PSI2MDguNzI4cHgiIHZpZXdCb3g9IjAgMCA0OTYuMjU1IDYwOC43MjgiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQ5Ni4yNTUgNjA4LjcyODsiCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxwYXRoIHN0eWxlPSJmaWxsOiM5OTk5OTk7IiBkPSJNMjczLjgxLDUyLjk3M0MzMTMuODA2LDAuMjU3LDM2OS40MSwwLDM2OS40MSwwczguMjcxLDQ5LjU2Mi0zMS40NjMsOTcuMzA2CgljLTQyLjQyNiw1MC45OC05MC42NDksNDIuNjM4LTkwLjY0OSw0Mi42MzhTMjM4LjI0Myw5OS44NSwyNzMuODEsNTIuOTczeiIvPgo8cGF0aCBzdHlsZT0iZmlsbDojOTk5OTk5OyIgZD0iTTI1Mi4zODUsMTc0LjY2MmMyMC41NzYsMCw1OC43NjQtMjguMjg0LDEwOC40NzEtMjguMjg0Yzg1LjU2MiwwLDExOS4yMjIsNjAuODgzLDExOS4yMjIsNjAuODgzCglzLTY1LjgzMywzMy42NTktNjUuODMzLDExNS4zMzFjMCw5Mi4xMzMsODIuMDEsMTIzLjg4NSw4Mi4wMSwxMjMuODg1cy01Ny4zMjgsMTYxLjM1Ny0xMzQuNzYyLDE2MS4zNTcKCWMtMzUuNTY1LDAtNjMuMjE1LTIzLjk2Ny0xMDAuNjg4LTIzLjk2N2MtMzguMTg4LDAtNzYuMDg0LDI0Ljg2MS0xMDAuNzY2LDI0Ljg2MUM4OS4zMyw2MDguNzMsMCw0NTUuNjY2LDAsMzMyLjYyOAoJYzAtMTIxLjA1Miw3NS42MTItMTg0LjU1NCwxNDYuNTMzLTE4NC41NTRDMTkyLjYzOCwxNDguMDc0LDIyOC40MTYsMTc0LjY2MiwyNTIuMzg1LDE3NC42NjJ6Ii8+Cjwvc3ZnPgo=)

* **Android:** UiAutomator (4.2+)
* **iOS:** XCUITest (9.3+)

***

## touchDown[​](#touchdown "Direct link to touchDown")

Finger down on the screen.<br /><br />Appium command. More details can be found in the [official protocol docs](https://github.com/appium/appium/blob/master/packages/base-driver/docs/mjsonwp/protocol-methods.md#webdriver-endpoints).

caution

This protocol command is deprecated<br />Use `driver.performActions(...)` with a `pointerDown` action instead

### Usage[​](#usage-84 "Direct link to Usage")

```
await driver.touchDown(x, y)
```

### Parameters[​](#parameters-55 "Direct link to Parameters")

| Name | Type     | Details                    |
| ---- | -------- | -------------------------- |
| `x`  | `number` | x coordinate on the screen |
| `y`  | `number` | y coordinate on the screen |

### Support[​](#support-73 "Direct link to Support")

![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg)

* **Android:** UiAutomator (4.2+)

***

## touchUp[​](#touchup "Direct link to touchUp")

Finger up on the screen.<br /><br />Appium command. More details can be found in the [official protocol docs](https://github.com/appium/appium/blob/master/packages/base-driver/docs/mjsonwp/protocol-methods.md#webdriver-endpoints).

caution

This protocol command is deprecated<br />Use `driver.performActions(...)` with a `pointerUp` action instead

### Usage[​](#usage-85 "Direct link to Usage")

```
await driver.touchUp(x, y)
```

### Parameters[​](#parameters-56 "Direct link to Parameters")

| Name | Type     | Details                    |
| ---- | -------- | -------------------------- |
| `x`  | `number` | x coordinate on the screen |
| `y`  | `number` | y coordinate on the screen |

### Support[​](#support-74 "Direct link to Support")

![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg)

* **Android:** UiAutomator (4.2+)

***

## touchMove[​](#touchmove "Direct link to touchMove")

Finger move on the screen.<br /><br />Appium command. More details can be found in the [official protocol docs](https://github.com/appium/appium/blob/master/packages/base-driver/docs/mjsonwp/protocol-methods.md#webdriver-endpoints).

caution

This protocol command is deprecated<br />Use `driver.performActions(...)` with a `pointerMove` action instead

### Usage[​](#usage-86 "Direct link to Usage")

```
await driver.touchMove(x, y)
```

### Parameters[​](#parameters-57 "Direct link to Parameters")

| Name | Type     | Details                    |
| ---- | -------- | -------------------------- |
| `x`  | `number` | x coordinate on the screen |
| `y`  | `number` | y coordinate on the screen |

### Support[​](#support-75 "Direct link to Support")

![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg)

* **Android:** UiAutomator (4.2+)

***

## touchLongClick[​](#touchlongclick "Direct link to touchLongClick")

Long press on the touch screen using finger motion events.<br /><br />Appium command. More details can be found in the [official protocol docs](https://github.com/appium/appium/blob/master/packages/base-driver/docs/mjsonwp/protocol-methods.md#webdriver-endpoints).

caution

This protocol command is deprecated<br />Use `driver.performActions(...)` with `pointerDown`, `pause` and `pointerUp` actions instead

### Usage[​](#usage-87 "Direct link to Usage")

```
await driver.touchLongClick(element)
```

### Parameters[​](#parameters-58 "Direct link to Parameters")

| Name      | Type     | Details                            |
| --------- | -------- | ---------------------------------- |
| `element` | `string` | ID of the element to long press on |

### Support[​](#support-76 "Direct link to Support")

![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg)

* **Android:** UiAutomator (4.2+)

***

## touchFlick[​](#touchflick "Direct link to touchFlick")

Flick on the touch screen using finger motion events. This flick command starts at a particular screen location.<br /><br />Appium command. More details can be found in the [official protocol docs](https://github.com/appium/appium/blob/master/packages/base-driver/docs/mjsonwp/protocol-methods.md#webdriver-endpoints).

caution

This protocol command is deprecated<br />Use `driver.performActions(...)` with `pointerDown`, `pointerMove` and `pointerUp` actions instead

### Usage[​](#usage-88 "Direct link to Usage")

```
await driver.touchFlick(xoffset, yoffset, element, speed, xspeed, yspeed)
```

### Parameters[​](#parameters-59 "Direct link to Parameters")

| Name                      | Type     | Details                                  |
| ------------------------- | -------- | ---------------------------------------- |
| `xoffset`<br />*optional* | `number` | the x offset in pixels to flick by       |
| `yoffset`<br />*optional* | `number` | the y offset in pixels to flick by       |
| `element`<br />*optional* | `string` | ID of the element where the flick starts |
| `speed`<br />*optional*   | `number` | the speed in pixels per seconds          |
| `xspeed`<br />*optional*  | `number` | the x speed in pixels per second         |
| `yspeed`<br />*optional*  | `number` | the y speed in pixels per second         |

### Support[​](#support-77 "Direct link to Support")

![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg)

* **Android:** UiAutomator (4.2+)

***

## getOrientation[​](#getorientation "Direct link to getOrientation")

Get the current device orientation.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.io/docs/en/latest/reference/api/jsonwp/#getorientation).

### Usage[​](#usage-89 "Direct link to Usage")

```
await driver.getOrientation()
```

### Returns[​](#returns-36 "Direct link to Returns")

* **\<String>** **`orientation`:** The current orientation corresponding to a value defined in ScreenOrientation: `LANDSCAPE|PORTRAIT`.

### Support[​](#support-78 "Direct link to Support")

![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg) ![Support for XCUITest (9.3+)](data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iRWJlbmVfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgd2lkdGg9IjQ5Ni4yNTVweCIgaGVpZ2h0PSI2MDguNzI4cHgiIHZpZXdCb3g9IjAgMCA0OTYuMjU1IDYwOC43MjgiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQ5Ni4yNTUgNjA4LjcyODsiCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxwYXRoIHN0eWxlPSJmaWxsOiM5OTk5OTk7IiBkPSJNMjczLjgxLDUyLjk3M0MzMTMuODA2LDAuMjU3LDM2OS40MSwwLDM2OS40MSwwczguMjcxLDQ5LjU2Mi0zMS40NjMsOTcuMzA2CgljLTQyLjQyNiw1MC45OC05MC42NDksNDIuNjM4LTkwLjY0OSw0Mi42MzhTMjM4LjI0Myw5OS44NSwyNzMuODEsNTIuOTczeiIvPgo8cGF0aCBzdHlsZT0iZmlsbDojOTk5OTk5OyIgZD0iTTI1Mi4zODUsMTc0LjY2MmMyMC41NzYsMCw1OC43NjQtMjguMjg0LDEwOC40NzEtMjguMjg0Yzg1LjU2MiwwLDExOS4yMjIsNjAuODgzLDExOS4yMjIsNjAuODgzCglzLTY1LjgzMywzMy42NTktNjUuODMzLDExNS4zMzFjMCw5Mi4xMzMsODIuMDEsMTIzLjg4NSw4Mi4wMSwxMjMuODg1cy01Ny4zMjgsMTYxLjM1Ny0xMzQuNzYyLDE2MS4zNTcKCWMtMzUuNTY1LDAtNjMuMjE1LTIzLjk2Ny0xMDAuNjg4LTIzLjk2N2MtMzguMTg4LDAtNzYuMDg0LDI0Ljg2MS0xMDAuNzY2LDI0Ljg2MUM4OS4zMyw2MDguNzMsMCw0NTUuNjY2LDAsMzMyLjYyOAoJYzAtMTIxLjA1Miw3NS42MTItMTg0LjU1NCwxNDYuNTMzLTE4NC41NTRDMTkyLjYzOCwxNDguMDc0LDIyOC40MTYsMTc0LjY2MiwyNTIuMzg1LDE3NC42NjJ6Ii8+Cjwvc3ZnPgo=)

* **Android:** UiAutomator (4.2+)
* **iOS:** XCUITest (9.3+)

***

## setOrientation[​](#setorientation "Direct link to setOrientation")

Set the device orientation<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.io/docs/en/latest/reference/api/jsonwp/#setorientation).

### Usage[​](#usage-90 "Direct link to Usage")

```
await driver.setOrientation(orientation)
```

### Parameters[​](#parameters-60 "Direct link to Parameters")

| Name          | Type     | Details                                                                            |
| ------------- | -------- | ---------------------------------------------------------------------------------- |
| `orientation` | `string` | the new browser orientation as defined in ScreenOrientation: `LANDSCAPE\|PORTRAIT` |

### Support[​](#support-79 "Direct link to Support")

![Support for UiAutomator (4.2+)](/assets/images/android-d941e94d5839760141de31c8446b67ce.svg) ![Support for XCUITest (9.3+)](data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iRWJlbmVfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgd2lkdGg9IjQ5Ni4yNTVweCIgaGVpZ2h0PSI2MDguNzI4cHgiIHZpZXdCb3g9IjAgMCA0OTYuMjU1IDYwOC43MjgiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQ5Ni4yNTUgNjA4LjcyODsiCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxwYXRoIHN0eWxlPSJmaWxsOiM5OTk5OTk7IiBkPSJNMjczLjgxLDUyLjk3M0MzMTMuODA2LDAuMjU3LDM2OS40MSwwLDM2OS40MSwwczguMjcxLDQ5LjU2Mi0zMS40NjMsOTcuMzA2CgljLTQyLjQyNiw1MC45OC05MC42NDksNDIuNjM4LTkwLjY0OSw0Mi42MzhTMjM4LjI0Myw5OS44NSwyNzMuODEsNTIuOTczeiIvPgo8cGF0aCBzdHlsZT0iZmlsbDojOTk5OTk5OyIgZD0iTTI1Mi4zODUsMTc0LjY2MmMyMC41NzYsMCw1OC43NjQtMjguMjg0LDEwOC40NzEtMjguMjg0Yzg1LjU2MiwwLDExOS4yMjIsNjAuODgzLDExOS4yMjIsNjAuODgzCglzLTY1LjgzMywzMy42NTktNjUuODMzLDExNS4zMzFjMCw5Mi4xMzMsODIuMDEsMTIzLjg4NSw4Mi4wMSwxMjMuODg1cy01Ny4zMjgsMTYxLjM1Ny0xMzQuNzYyLDE2MS4zNTcKCWMtMzUuNTY1LDAtNjMuMjE1LTIzLjk2Ny0xMDAuNjg4LTIzLjk2N2MtMzguMTg4LDAtNzYuMDg0LDI0Ljg2MS0xMDAuNzY2LDI0Ljg2MUM4OS4zMyw2MDguNzMsMCw0NTUuNjY2LDAsMzMyLjYyOAoJYzAtMTIxLjA1Miw3NS42MTItMTg0LjU1NCwxNDYuNTMzLTE4NC41NTRDMTkyLjYzOCwxNDguMDc0LDIyOC40MTYsMTc0LjY2MiwyNTIuMzg1LDE3NC42NjJ6Ii8+Cjwvc3ZnPgo=)

* **Android:** UiAutomator (4.2+)
* **iOS:** XCUITest (9.3+)

***

## getGeoLocation[​](#getgeolocation "Direct link to getGeoLocation")

Get the current geo location.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.io/docs/en/latest/reference/api/jsonwp/#getgeolocation).

### Usage[​](#usage-91 "Direct link to Usage")

```
await driver.getGeoLocation()
```

### Returns[​](#returns-37 "Direct link to Returns")

* **\<Object>** **`location`:** The current geo location.

***

## setGeoLocation[​](#setgeolocation "Direct link to setGeoLocation")

Set the current geo location.<br /><br />Appium command. More details can be found in the [official protocol docs](https://appium.io/docs/en/latest/reference/api/jsonwp/#setgeolocation).

### Usage[​](#usage-92 "Direct link to Usage")

```
await driver.setGeoLocation(location)
```

### Parameters[​](#parameters-61 "Direct link to Parameters")

| Name       | Type     | Details                                                                      |
| ---------- | -------- | ---------------------------------------------------------------------------- |
| `location` | `object` | the new location (`{latitude: number, longitude: number, altitude: number}`) |
