mirror of
https://github.com/appium/appium.git
synced 2026-04-23 03:55:29 -05:00
docs: add Appium 3 migration guide (#21174)
* docs: start Appium 3 migration guide * docs: add most of the removed endpoints * docs: add the remaining removed endpoints * docs: reduce extra lines * docs: add more endpoint options * docs: use icons instead of footnotes * docs: add remaining gesture actions * docs: improve wording * docs: add /keys replacement endpoint * docs: add links to Selenium Actions * docs: further improve wording * docs: address comments * docs: update endpoints without replacements
This commit is contained in:
@@ -0,0 +1,456 @@
|
||||
---
|
||||
title: Migrating to Appium 3
|
||||
---
|
||||
<style>
|
||||
.md-typeset .grid {
|
||||
grid-template-columns: repeat(auto-fit,minmax(min(100%,11rem),1fr));
|
||||
}
|
||||
</style>
|
||||
|
||||
This document is a guide for those who are using Appium 2 and would like to upgrade to Appium 3.
|
||||
It contains a list of breaking changes, as well as suggestions for handling them.
|
||||
|
||||
While Appium 2 was a major overhaul of the entire Appium architecture, Appium 3 is a smaller
|
||||
upgrade with fewer breaking changes, which should result in a much simpler migration process.
|
||||
|
||||
## Breaking Changes
|
||||
|
||||
### Node 20+ Required
|
||||
|
||||
With Appium 2, the minimum required Node version was `14.17.0`. Support for Node 14 had already
|
||||
ended before the release of Appium 2, which meant that even users on outdated Node versions were
|
||||
able to use it.
|
||||
|
||||
Appium 3 drops support for outdated Node versions, and bumps the minimum required version to Node
|
||||
`20.9.0`, as well as the minimum `npm` version to `10`.
|
||||
|
||||
!!! info "Actions Needed"
|
||||
|
||||
Upgrade Node.js to `v20.9.0` or newer, and `npm` to `v10` or newer
|
||||
|
||||
### Deprecated Endpoints Removed
|
||||
|
||||
Appium 3 removes many previously deprecated server endpoints. Nearly all of these have direct or
|
||||
close-to-direct replacements in either standard W3C endpoints, other Appium endpoints, or
|
||||
driver-specific extension commands. These endpoints, along with replacements (where applicable)
|
||||
are listed [in the **Removed Endpoints** section](#removed).
|
||||
|
||||
Some W3C endpoints used in Appium also existed in the old JSONWP standard, but required other
|
||||
parameters. With Appium 2, both standards for these endpoints were supported. Appium 3 changes
|
||||
these endpoints by removing support for the JSONWP parameters, and only accepting the W3C
|
||||
parameters. These endpoints are listed [in the **Modified Endpoints** section](#modified).
|
||||
|
||||
!!! info "Actions Needed"
|
||||
|
||||
Check your Appium client documentation for the affected methods, and adjust your code to use
|
||||
their replacements
|
||||
|
||||
### Feature Flag Prefix Required
|
||||
|
||||
With Appium 2, it was possible to opt into certain [insecure features](http://appium.io/docs/en/latest/guides/security/)
|
||||
on server startup, which could be enabled using the `--allow-insecure` or `--relaxed-security`
|
||||
flags. Appium `2.13` added the ability to optionally provide a scope prefix to specific features,
|
||||
ensuring that they would only be enabled for the specified driver (or all of them).
|
||||
|
||||
Appium 3 makes the scope prefix mandatory, and will throw an error if features are specified
|
||||
without a scope. Note that the behavior of the `--relaxed-security` flag remains unchanged.
|
||||
|
||||
!!! info "Actions Needed"
|
||||
|
||||
If you use the `--allow-insecure` server flag, add a scope prefix before each feature name.
|
||||
For example, if you use the UiAutomator2 `adb_shell` feature, on Appium 2 you would enable it
|
||||
like this:
|
||||
```
|
||||
appium --allow-insecure=adb_shell
|
||||
```
|
||||
On Appium 3, to ensure this feature is only activated for UiAutomator2, you can run it like so:
|
||||
```
|
||||
appium --allow-insecure=uiautomator2:adb_shell
|
||||
```
|
||||
Alternatively, if you wish to keep the Appium 2 behavior and enable the feature for _all_
|
||||
drivers that support it, you can run it like so:
|
||||
```
|
||||
appium --allow-insecure=*:adb_shell
|
||||
```
|
||||
|
||||
### Unzip Logic Removed
|
||||
|
||||
Appium 3 removes the custom unzip logic used when working with files like application packages.
|
||||
Such files are often only relevant to particular platforms, therefore the functionality for
|
||||
handling these operations has been moved to relevant drivers.
|
||||
|
||||
!!! info "Actions Needed"
|
||||
|
||||
Ensure you are using the most recent versions of your drivers
|
||||
|
||||
### Express 5
|
||||
|
||||
Appium 3 upgrades the internally-used `express` dependency from `v4` to `v5`. This should not
|
||||
affect users who use Appium directly, but developers integrating parts of Appium into their own
|
||||
projects may want to check [the Express 5 Migration Guide](https://expressjs.com/en/guide/migrating-5.html).
|
||||
|
||||
!!! info "Actions Needed"
|
||||
|
||||
None! (hopefully)
|
||||
|
||||
## Endpoint Changes
|
||||
### Removed
|
||||
|
||||
The following are all endpoints removed in Appium 3. Where applicable, one or more suggested
|
||||
replacement endpoints are also listed, along with any extra information. Since many of the
|
||||
suggested options are specific to certain drivers, where applicable, icons are used to indicate
|
||||
the drivers which support that option:
|
||||
|
||||
<div class="grid cards" markdown>
|
||||
|
||||
- :material-apple:{ .lg } - [XCUITest driver](https://appium.github.io/appium-xcuitest-driver/latest/)
|
||||
- :material-android:{ .lg } - [UiAutomator2 driver](https://github.com/appium/appium-uiautomator2-driver/)
|
||||
- :material-coffee:{ .lg } - [Espresso driver](https://github.com/appium/appium-espresso-driver)
|
||||
- :material-apple-finder:{ .lg } - [Mac2 driver](https://github.com/appium/appium-mac2-driver)
|
||||
- :material-microsoft-windows:{ .lg } - [Windows driver](https://github.com/appium/appium-windows-driver)
|
||||
|
||||
</div>
|
||||
|
||||
* `GET /sessions`
|
||||
* :octicons-arrow-right-24: `GET /appium/sessions`
|
||||
* `POST /session/:sessionId/accept_alert`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/alert/accept`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/execute/sync` with one of:
|
||||
* `mobile: alert` :material-apple:
|
||||
* `mobile: acceptAlert` :material-android:
|
||||
* `GET /session/:sessionId/alert_text`
|
||||
* :octicons-arrow-right-24: `GET /session/:sessionId/alert/text`
|
||||
* `POST /session/:sessionId/alert_text`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/alert/text`
|
||||
* `POST /session/:sessionId/appium/app/background`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/execute/sync` with
|
||||
`mobile: backgroundApp` :material-apple: :material-android: :material-coffee:
|
||||
* `POST /session/:sessionId/appium/app/close`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/execute/sync` with one of:
|
||||
* `mobile: terminateApp` :material-apple: :material-android: :material-coffee:
|
||||
* `macos: terminateApp` :material-apple-finder:
|
||||
* `windows: closeApp` :material-microsoft-windows:
|
||||
* `POST /session/:sessionId/appium/app/end_test_coverage`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/execute/sync` with `mobile: shell`
|
||||
:material-android: :material-coffee:
|
||||
* `POST /session/:sessionId/appium/app/launch`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/execute/sync` with one of:
|
||||
* `mobile: launchApp` :material-apple:
|
||||
* `mobile: activateApp` or `mobile: startActivity` :material-android: :material-coffee:
|
||||
* `macos: launchApp` or `macos: activateApp` :material-apple-finder:
|
||||
* `windows: launchApp` :material-microsoft-windows:
|
||||
* `POST /session/:sessionId/appium/app/reset`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/execute/sync` with
|
||||
`mobile: clearApp` :material-apple: [^sim] :material-android: :material-coffee:
|
||||
* `POST /session/:sessionId/appium/app/strings`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/execute/sync` with
|
||||
`mobile: getAppStrings` :material-apple: :material-android: :material-coffee:
|
||||
* `GET /session/:sessionId/appium/device/app_state`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/appium/device/app_state`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/execute/sync` with one of:
|
||||
* `mobile: queryAppState` :material-apple: :material-android: :material-coffee:
|
||||
* `macos: queryAppState` :material-apple-finder:
|
||||
* `GET /session/:sessionId/appium/device/current_activity`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/execute/sync` with
|
||||
`mobile: getCurrentActivity` :material-android: :material-coffee:
|
||||
* `GET /session/:sessionId/appium/device/current_package`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/execute/sync` with
|
||||
`mobile: getCurrentPackage` :material-android: :material-coffee:
|
||||
* `GET /session/:sessionId/appium/device/display_density`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/execute/sync` with
|
||||
`mobile: getDisplayDensity` :material-android: :material-coffee:
|
||||
* `POST /session/:sessionId/appium/device/finger_print`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/execute/sync` with
|
||||
`mobile: fingerPrint` :material-android: [^sim] :material-coffee: [^sim]
|
||||
* `POST /session/:sessionId/appium/device/get_clipboard`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/execute/sync` with one of:
|
||||
* `mobile: getClipboard` :material-apple: :material-android: :material-coffee:
|
||||
* `mobile: getPasteboard` :material-apple: [^sim]
|
||||
* `windows: getClipboard` :material-microsoft-windows:
|
||||
* `POST /session/:sessionId/appium/device/gsm_call`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/execute/sync` with
|
||||
`mobile: gsmCall` :material-android: [^sim] :material-coffee: [^sim]
|
||||
* `POST /session/:sessionId/appium/device/gsm_signal`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/execute/sync` with
|
||||
`mobile: gsmSignal` :material-android: [^sim] :material-coffee: [^sim]
|
||||
* `POST /session/:sessionId/appium/device/gsm_voice`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/execute/sync` with
|
||||
`mobile: gsmVoice` :material-android: [^sim] :material-coffee: [^sim]
|
||||
* `POST /session/:sessionId/appium/device/is_locked`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/execute/sync` with
|
||||
`mobile: isLocked` :material-apple: :material-android: :material-coffee:
|
||||
* `POST /session/:sessionId/appium/device/keyevent`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/execute/sync` with one of:
|
||||
* `mobile: keys` :material-apple: (iPadOS only)
|
||||
* `mobile: pressKey` :material-android: :material-coffee:
|
||||
* `macos: keys` :material-apple-finder:
|
||||
* `windows: keys` :material-microsoft-windows:
|
||||
* `POST /session/:sessionId/appium/device/lock`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/execute/sync` with
|
||||
`mobile: lock` :material-apple: :material-android: :material-coffee:
|
||||
* `POST /session/:sessionId/appium/device/long_press_keycode`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/execute/sync` with
|
||||
`mobile: pressKey` :material-android: :material-coffee:
|
||||
* `POST /session/:sessionId/appium/device/network_speed`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/execute/sync` with
|
||||
`mobile: networkSpeed` :material-android: [^sim] :material-coffee: [^sim]
|
||||
* `POST /session/:sessionId/appium/device/open_notifications`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/execute/sync` with one of:
|
||||
* `mobile: statusBar` :material-android: :material-coffee:
|
||||
* `mobile: openNotifications` :material-android:
|
||||
* `POST /session/:sessionId/appium/device/power_ac`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/execute/sync` with
|
||||
`mobile: powerAC` :material-android: [^sim] :material-coffee: [^sim]
|
||||
* `POST /session/:sessionId/appium/device/power_capacity`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/execute/sync` with
|
||||
`mobile: powerCapacity` :material-android: [^sim] :material-coffee: [^sim]
|
||||
* `POST /session/:sessionId/appium/device/press_keycode`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/execute/sync` with one of:
|
||||
* `mobile: keys` :material-apple: (iPadOS only)
|
||||
* `mobile: pressKey` :material-android: :material-coffee:
|
||||
* `macos: keys` :material-apple-finder:
|
||||
* `windows: keys` :material-microsoft-windows:
|
||||
* `POST /session/:sessionId/appium/device/send_sms`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/execute/sync` with
|
||||
`mobile: sendSms` :material-android: [^sim] :material-coffee: [^sim]
|
||||
* `POST /session/:sessionId/appium/device/set_clipboard`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/execute/sync` with one of:
|
||||
* `mobile: setClipboard` :material-apple: :material-android: :material-coffee:
|
||||
* `mobile: setPasteboard` :material-apple: [^sim]
|
||||
* `windows: setClipboard` :material-microsoft-windows:
|
||||
* `POST /session/:sessionId/appium/device/shake`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/execute/sync` with
|
||||
`mobile: shake` :material-apple: [^sim]
|
||||
* `POST /session/:sessionId/appium/device/start_activity`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/execute/sync` with
|
||||
`mobile: startActivity` :material-android: :material-coffee:
|
||||
* `GET /session/:sessionId/appium/device/system_bars`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/execute/sync` with one of:
|
||||
* `mobile: deviceScreenInfo` :material-apple:
|
||||
* `mobile: getSystemBars` :material-android: :material-coffee:
|
||||
* `POST /session/:sessionId/appium/device/toggle_airplane_mode`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/execute/sync` with
|
||||
`mobile: setConnectivity` :material-android: :material-coffee:
|
||||
* `POST /session/:sessionId/appium/device/toggle_data`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/execute/sync` with
|
||||
`mobile: setConnectivity` :material-android: :material-coffee:
|
||||
* `POST /session/:sessionId/appium/device/toggle_location_services`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/execute/sync` with
|
||||
`mobile: toggleGps` :material-android: :material-coffee:
|
||||
* `POST /session/:sessionId/appium/device/toggle_wifi`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/execute/sync` with
|
||||
`mobile: setConnectivity` :material-android: :material-coffee:
|
||||
* `POST /session/:sessionId/appium/device/unlock`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/execute/sync` with
|
||||
`mobile: unlock` :material-apple: :material-android: :material-coffee:
|
||||
* `POST /session/:sessionId/appium/element/:elementId/value`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/element/:elementId/value`
|
||||
* `POST /session/:sessionId/appium/element/:elementId/replace_value`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/element/:elementId/value`
|
||||
* `POST /session/:sessionId/appium/getPerformanceData`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/execute/sync` with
|
||||
`mobile: getPerformanceData` :material-android: :material-coffee:
|
||||
* `POST /session/:sessionId/appium/performanceData/types`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/execute/sync` with
|
||||
`mobile: getPerformanceDataTypes` :material-android: :material-coffee:
|
||||
* `POST /session/:sessionId/appium/receive_async_response`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/execute/async`
|
||||
* `POST /session/:sessionId/appium/simulator/toggle_touch_id_enrollment`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/execute/sync` with
|
||||
`mobile: enrollBiometric` :material-apple: [^sim]
|
||||
* `POST /session/:sessionId/appium/simulator/touch_id`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/execute/sync` with
|
||||
`mobile: sendBiometricMatch` :material-apple: [^sim]
|
||||
* `POST /session/:sessionId/appium/start_recording_screen`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/execute/sync` with one of:
|
||||
* `mobile: startXCTestScreenRecording` :material-apple:
|
||||
* `mobile: startMediaProjectionRecording` :material-android: :material-coffee:
|
||||
* `macos: startRecordingScreen` or `macos: startNativeScreenRecording` :material-apple-finder:
|
||||
* `windows: startRecordingScreen` :material-microsoft-windows:
|
||||
* `POST /session/:sessionId/appium/stop_recording_screen`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/execute/sync` with one of:
|
||||
* `mobile: stopXCTestScreenRecording` :material-apple:
|
||||
* `mobile: stopMediaProjectionRecording` :material-android: :material-coffee:
|
||||
* `macos: stopRecordingScreen` or `macos: stopNativeScreenRecording` :material-apple-finder:
|
||||
* `windows: stopRecordingScreen` :material-microsoft-windows:
|
||||
* `GET /session/:sessionId/application_cache/status`
|
||||
* :octicons-no-entry-24: JSONWP protocol command with no direct replacement
|
||||
* `POST /session/:sessionId/buttondown`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/actions` with the `pointerDown` action
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/execute/sync` with `windows: keys`
|
||||
:material-microsoft-windows:
|
||||
* `POST /session/:sessionId/buttonup`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/actions` with the `pointerUp` action
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/execute/sync` with `windows: keys`
|
||||
:material-microsoft-windows:
|
||||
* `POST /session/:sessionId/click`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/actions` with the `pointerDown` &
|
||||
`pointerUp` actions
|
||||
* `POST /session/:sessionId/dismiss_alert`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/alert/dismiss`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/execute/sync` with one of:
|
||||
* `mobile: alert` :material-apple:
|
||||
* `mobile: dismissAlert` :material-android:
|
||||
* `POST /session/:sessionId/doubleclick`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/actions` with the `pointerDown` &
|
||||
`pointerUp` actions
|
||||
* `POST /session/:sessionId/element/active`
|
||||
* :octicons-arrow-right-24: `GET /session/:sessionId/element/active`
|
||||
* `GET /session/:sessionId/element/:elementId/equals/:otherId`
|
||||
* :octicons-no-entry-24: JSONWP protocol command with no direct replacement
|
||||
* `GET /session/:sessionId/element/:elementId/location`
|
||||
* :octicons-arrow-right-24: `GET /session/:sessionId/element/:elementId/rect`
|
||||
* `GET /session/:sessionId/element/:elementId/location_in_view`
|
||||
* :octicons-no-entry-24: JSONWP protocol command with no direct replacement
|
||||
* `GET /session/:sessionId/element/:elementId/pageIndex`
|
||||
* :octicons-no-entry-24: MJSONWP protocol command with no direct replacement
|
||||
* `GET /session/:sessionId/element/:elementId/size`
|
||||
* :octicons-arrow-right-24: `GET /session/:sessionId/element/:elementId/rect`
|
||||
* `POST /session/:sessionId/element/:elementId/submit`
|
||||
* :octicons-no-entry-24: JSONWP protocol command with no direct replacement
|
||||
* `POST /session/:sessionId/execute`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/execute/sync`
|
||||
* `POST /session/:sessionId/execute_async`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/execute/async`
|
||||
* `POST /session/:sessionId/keys`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/actions` with the `keyDown` & `keyUp`
|
||||
actions
|
||||
* Selenium-based clients can also use [Send Keys](https://www.selenium.dev/documentation/webdriver/actions_api/keyboard/#send-keys)
|
||||
* `GET /session/:sessionId/local_storage`
|
||||
* :octicons-no-entry-24: JSONWP protocol command with no direct replacement
|
||||
* `POST /session/:sessionId/local_storage`
|
||||
* :octicons-no-entry-24: JSONWP protocol command with no direct replacement
|
||||
* `DELETE /session/:sessionId/local_storage`
|
||||
* :octicons-no-entry-24: JSONWP protocol command with no direct replacement
|
||||
* `GET /session/:sessionId/local_storage/key/:key`
|
||||
* :octicons-no-entry-24: JSONWP protocol command with no direct replacement
|
||||
* `DELETE /session/:sessionId/local_storage/key/:key`
|
||||
* :octicons-no-entry-24: JSONWP protocol command with no direct replacement
|
||||
* `GET /session/:sessionId/local_storage/size`
|
||||
* :octicons-no-entry-24: JSONWP protocol command with no direct replacement
|
||||
* `POST /session/:sessionId/log`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/se/log`
|
||||
* `GET /session/:sessionId/log/types`
|
||||
* :octicons-arrow-right-24: `GET /session/:sessionId/se/log/types`
|
||||
* `POST /session/:sessionId/moveto`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/actions` with the `pointerMove` action
|
||||
* Selenium-based clients can also use [Move by Offset](https://www.selenium.dev/documentation/webdriver/actions_api/mouse/#move-by-offset)
|
||||
* `GET /session/:sessionId/screenshot/:elementId`
|
||||
* :octicons-arrow-right-24: `GET /session/:sessionId/element/:elementId/screenshot`
|
||||
* `GET /session/:sessionId/session_storage`
|
||||
* :octicons-no-entry-24: JSONWP protocol command with no direct replacement
|
||||
* `POST /session/:sessionId/session_storage`
|
||||
* :octicons-no-entry-24: JSONWP protocol command with no direct replacement
|
||||
* `DELETE /session/:sessionId/session_storage`
|
||||
* :octicons-no-entry-24: JSONWP protocol command with no direct replacement
|
||||
* `GET /session/:sessionId/session_storage/key/:key`
|
||||
* :octicons-no-entry-24: JSONWP protocol command with no direct replacement
|
||||
* `DELETE /session/:sessionId/session_storage/key/:key`
|
||||
* :octicons-no-entry-24: JSONWP protocol command with no direct replacement
|
||||
* `GET /session/:sessionId/session_storage/size`
|
||||
* :octicons-no-entry-24: JSONWP protocol command with no direct replacement
|
||||
* `POST /session/:sessionId/timeouts/async_script`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/timeouts`
|
||||
* `POST /session/:sessionId/timeouts/implicit_wait`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/timeouts`
|
||||
* `POST /session/:sessionId/touch/click`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/actions` with the `pointerDown` &
|
||||
`pointerUp` actions
|
||||
* Selenium-based clients can also use [Click and Release](https://www.selenium.dev/documentation/webdriver/actions_api/mouse/#click-and-release)
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/execute/sync` with one of:
|
||||
* `mobile: tap` or `mobile: tapWithNumberOfTaps` :material-apple:
|
||||
* `mobile: clickGesture` :material-android:
|
||||
* `mobile: clickAction` :material-coffee:
|
||||
* `macos: click`, `macos: rightClick`, `macos: press` or `macos: tap` :material-apple-finder:
|
||||
* `windows: click` :material-microsoft-windows:
|
||||
* `POST /session/:sessionId/touch/doubleclick`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/actions` with the `pointerDown` &
|
||||
`pointerUp` actions
|
||||
* Selenium-based clients can also use [Double Click](https://www.selenium.dev/documentation/webdriver/actions_api/mouse/#double-click)
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/execute/sync` with one of:
|
||||
* `mobile: doubleTap` or `mobile: tapWithNumberOfTaps` :material-apple:
|
||||
* `mobile: doubleClickGesture` :material-android:
|
||||
* `mobile: clickAction` :material-coffee:
|
||||
* `macos: doubleClick` or `macos: doubleTap` :material-apple-finder:
|
||||
* `windows: click` :material-microsoft-windows:
|
||||
* `POST /session/:sessionId/touch/down`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/actions` with the `pointerDown` action
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/execute/sync` with `windows: keys`
|
||||
:material-microsoft-windows:
|
||||
* `POST /session/:sessionId/touch/flick`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/actions` with the `pointerDown`,
|
||||
`pointerMove` & `pointerUp` actions
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/execute/sync` with `mobile: flingGesture`
|
||||
:material-android:
|
||||
* `POST /session/:sessionId/touch/longclick`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/actions` with the `pointerDown`, `pause`
|
||||
& `pointerUp` actions
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/execute/sync` with one of:
|
||||
* `mobile: touchAndHold` :material-apple:
|
||||
* `mobile: longClickGesture` :material-android:
|
||||
* `mobile: clickAction` :material-coffee:
|
||||
* `macos: press` :material-apple-finder:
|
||||
* `windows: click` :material-microsoft-windows:
|
||||
* `POST /session/:sessionId/touch/multi/perform`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/actions`
|
||||
* `POST /session/:sessionId/touch/move`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/actions` with the `pointerMove` action
|
||||
* Selenium-based clients can also use [Move by Offset](https://www.selenium.dev/documentation/webdriver/actions_api/mouse/#move-by-offset)
|
||||
* `POST /session/:sessionId/touch/perform`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/actions`
|
||||
* `POST /session/:sessionId/touch/scroll`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/actions` with the `pointerDown`,
|
||||
`pointerMove` & `pointerUp` actions
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/execute/sync` with one of:
|
||||
* `mobile: scroll` or `mobile: swipe` :material-apple:
|
||||
* `mobile: scrollGesture` or `mobile: swipeGesture` :material-android:
|
||||
* `mobile: swipe` :material-coffee:
|
||||
* `macos: scroll` or `macos: swipe` :material-apple-finder:
|
||||
* `windows: scroll` :material-microsoft-windows:
|
||||
* `POST /session/:sessionId/touch/up`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/actions` with the `pointerUp` action
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/execute/sync` with `windows: keys`
|
||||
:material-microsoft-windows:
|
||||
* `GET /session/:sessionId/window_handle`
|
||||
* :octicons-arrow-right-24: `GET /session/:sessionId/window`
|
||||
* `GET /session/:sessionId/window/handle`
|
||||
* :octicons-arrow-right-24: `GET /session/:sessionId/window`
|
||||
* `POST /session/:sessionId/window/:windowhandle/maximize`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/window/maximize`
|
||||
* :fontawesome-solid-triangle-exclamation: Only supported for the current window
|
||||
* `GET /session/:sessionId/window/:windowhandle/position`
|
||||
* :octicons-arrow-right-24: `GET /session/:sessionId/window/rect`
|
||||
* :fontawesome-solid-triangle-exclamation: Only supported for the current window
|
||||
* `POST /session/:sessionId/window/:windowhandle/position`
|
||||
* :octicons-arrow-right-24: `POST /session/:sessionId/window/rect`
|
||||
* :fontawesome-solid-triangle-exclamation: Only supported for the current window
|
||||
* `GET /session/:sessionId/window/:windowhandle/size`
|
||||
* :octicons-arrow-right-24: `GET /session/:sessionId/window/rect`
|
||||
* :fontawesome-solid-triangle-exclamation: Only supported for the current window
|
||||
|
||||
### Modified
|
||||
|
||||
The following are all endpoints modified in Appium 3, by removing handling for old or unused
|
||||
parameters (note that no new parameters have been added). Each endpoint lists the parameters it no
|
||||
longer accepts, as well as the parameters it continues to accept in Appium 3.
|
||||
|
||||
* `POST /session`
|
||||
* :octicons-x-24: `desiredCapabilities`, `requiredCapabilities`
|
||||
* :octicons-check-24: `capabilities`
|
||||
* `POST /session/:sessionId/alert/text`
|
||||
* :octicons-x-24: `value`
|
||||
* :octicons-check-24: `text`
|
||||
* `GET /session/:sessionId/appium/device/system_time`
|
||||
* :octicons-x-24: `format`
|
||||
* :octicons-check-24: None
|
||||
* `POST /session/:sessionId/element/:elementId/value`
|
||||
* :octicons-x-24: `value`
|
||||
* :octicons-check-24: `text`
|
||||
* `POST /session/:sessionId/timeouts`
|
||||
* :octicons-x-24: `type`, `ms`
|
||||
* :octicons-check-24: `script`, `pageLoad`, `implicit`
|
||||
* `POST /session/:sessionId/window`
|
||||
* :octicons-x-24: `name`
|
||||
* :octicons-check-24: `handle`
|
||||
|
||||
[^sim]: Supported in emulators/simulators only
|
||||
@@ -50,6 +50,7 @@ nav:
|
||||
- commands/universal-xml-plugin.md
|
||||
- Guides:
|
||||
- Migration:
|
||||
- guides/migrating-2-to-3.md
|
||||
- guides/migrating-1-to-2.md
|
||||
- Server/Driver Configuration:
|
||||
- guides/managing-exts.md
|
||||
|
||||
Reference in New Issue
Block a user