-
-
Notifications
You must be signed in to change notification settings - Fork 6.2k
docs: add Appium 3 migration guide #21174
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
I thought this was replaced with W3C action's send keys (from JSONWP -> W3C WebDriver protocol thing). https://www.selenium.dev/documentation/webdriver/actions_api/keyboard/#send-keys |
Good catch, added 👍 |
Afaik, others haven't been implemented or have already been removed so long, so our regular drivers don't have them now. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm
### 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` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
relaxed-security -> deny-insecure
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
deny-insecure
would be used with relaxed-security
to then opt out of specific features. The context here is specifically about enabling features, so relaxed-security
fits
* `mobile: activateApp` :material-android: :material-coffee: | ||
* `macos: launchApp` or `macos: activateApp` :material-apple-finder: | ||
* `windows: launchApp` :material-microsoft-windows: | ||
* `POST /session/:sessionId/appium/app/reset` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this functionality was deprecated a while ago. Generally, an direct alternative to reset was to quit the testing session and then start it again with the same capabilities, so the behavior depended on which capabilities were provided initially. I remember @wswebcreation was working on a WDIO wrapper API that allows to reliably implement app restart on android and ios
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, I've read the issue about removing this method, but as far as methods go, these are the closest ones I could find
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
very nice document. Love it ❤️
I really don't know what to do with this one. It has too many references. Not sure I have enough capacity to deal with it in the near future 🤷 |
I suppose it might be fine to keep it for now, and evaluate its removal in the next major version. Quite a few older endpoints are already being removed, anyway. |
This PR adds a migration guide from Appium 2 to Appium 3.
The guide covers all the items listed in #20792 (except the Inspector integration, as that is covered under removed endpoints) and provides required actions for each item. Most notably, it also includes a full list of removed endpoints, and one or more suggested replacements (all the ones I could find).
There are still 18 endpoints for which I could not find replacements, but perhaps there is a different related endpoint for each of them?
POST /session/:sessionId/appium/app/end_test_coverage
GET /session/:sessionId/application_cache/status
GET /session/:sessionId/element/:elementId/equals/:otherId
GET /session/:sessionId/element/:elementId/location_in_view
GET /session/:sessionId/element/:elementId/pageIndex
POST /session/:sessionId/element/:elementId/submit
- the Selenium docs simply list that the replacement is calling the click action on the form submission buttonGET/POST/DELETE/ /session/:sessionId/local_storage/*
(6 endpoints)GET/POST/DELETE/ /session/:sessionId/session_storage/*
(6 endpoints)