Compare commits

...
304 Commits
Author SHA1 Message Date
Umut Uzgur 9c325d3d35 Release 1.14.0 2019-07-04 18:41:25 +02:00
Umut Uzgur ad9988facb Bump up the version 2019-06-24 17:17:53 +02:00
Umut Uzgur f0b39a1cdc Bump up the version 2019-06-24 17:15:52 +02:00
Umut Uzgur 0927126820 Bump up the version 2019-06-24 17:10:35 +02:00
Umut Uzgur 6d792ed4d3 Add npm shrinkwrap 2019-06-24 17:08:40 +02:00
Appium Triager d4844fb0bb Update generated docs [ci skip] (#12813) 2019-06-23 19:29:11 -07:00
Kazuaki Matsuo 82b8a5ab88 add webAtoms in mobile-command (#12804)
* add webAtoms in mobile-command

* fix lint
2019-06-23 17:43:09 -07:00
Appium Triager 7036350b76 Update generated docs [ci skip] (#12808) 2019-06-24 08:27:16 +09:00
dpgraham 4836c08d55 Again 2019-06-21 19:54:28 -07:00
Jonathan Lipps 11b8d36d83 Merge pull request #12778 from appium/relaxed-security
add --allow-insecure and --deny-insecure server flags
2019-06-20 18:49:52 -07:00
Jonathan Lipps adf93d085e add note about helpful security checking methods for driver developers 2019-06-20 18:44:42 -07:00
Jonathan Lipps 94b305dec7 move to automation name in security doc 2019-06-20 13:13:42 -07:00
Jonathan Lipps 2bd4e486a7 better printing of insecure feature names 2019-06-20 13:09:42 -07:00
Jonathan Lipps ede9605458 add full docs for new security flag 2019-06-20 11:16:48 -07:00
Isaac A. Murchie 1860828bca Add new packages to packweb config (#12805) 2019-06-20 10:24:52 -07:00
Takeshi Kishi 6c3f9c2794 fix documents about nativeWebTap (#12801)
* fix documents about nativeWebTap

* fix the appearance
2019-06-20 09:24:38 -07:00
Jonathan Lipps ecac10a3e1 add --allow-insecure and --deny-insecure server flags 2019-06-19 15:02:50 -07:00
Appium Triager dba3a87c54 Update generated docs [ci skip] (#12796) 2019-06-19 07:55:24 -04:00
Appium Triager 38f2876859 Update generated docs [ci skip] (#12793) 2019-06-19 07:16:08 -04:00
Isaac A. Murchie 073291d29b Add trackScrollEvents setting to docs (#12791)
* Add trackScrollEvents setting to docs

* Add more info on scroll tracking

* Typo patrol
2019-06-19 07:15:37 -04:00
Kazuaki Matsuo da3f5f9be7 update installation of fbsimctl (#12574)
* update installation of fbsimctl

* replace fbsimctl with appium-idb

* add version [skip ci]
2019-06-19 09:39:14 +09:00
Ediz Tekok 920197b7ba fix screen recording docs
* Update start-recording-screen.yml

It can be confusing to pass the parameters without adding the given parameters under "options" - this is not stated anywhere in the document.

* Update start-recording-screen.yml

* Update start-recording-screen.yml

* Fixing the documentation
2019-06-19 00:53:14 +05:30
Dan Graham 0c1adf1d42 docs: Describe mobile commands in execute yml (#12792)
Execute docs say that it's web only, which is incorrect. Update description to reflect that.
2019-06-18 11:23:09 -07:00
Kazuaki Matsuo 1494b6cb4c add settings in caps (#12776)
* add settings in caps

* fix typo

* fix comment [skip ci]
2019-06-18 06:40:05 -07:00
Appium Triager 30193f041e Update generated docs [ci skip] (#12786) 2019-06-18 08:29:01 +09:00
greenkeeper[bot] ae93e8a4bf chore(package): update validate.js to version 0.13.0 (#12780) 2019-06-17 07:29:10 -04:00
Khanh Do efa9ce5b0b docs: Update doubleclick.yml (#12773) 2019-06-14 09:39:18 +05:30
Appium Triager 49ed66602d Update generated docs [ci skip] (#12752) 2019-06-11 07:43:38 -04:00
Akshat Giri 39c03cfabc Include .wait in wd for javascript as an example (#12744)
Without .wait() touch action doesn't press and move. I think it's mainly because it needs time to press move is too sudden for ios to capture.
2019-06-11 10:54:50 +09:00
Kazuaki Matsuo b231aebadd add settings api for keyboard, add a description about keyboard config in ios-xcuitest [skip ci] (#12737)
* add settings api for keyboard, add a description about keyboard config in ios-xcuitest [skip ci]

* add available appium versions

* fix review [ci skip]
2019-06-10 20:09:43 +09:00
Appium Triager 3f102d7331 Update generated docs [ci skip] (#12727) 2019-06-09 00:06:43 +09:00
Kazuaki Matsuo 5e636e7885 Add doc file movement (real device) (#12710)
* documents container type

* fix review

* tweak descriptions and examples [skip ci]
2019-06-06 11:55:00 +09:00
Mykola Mokhnach 4fb0400615 Add derivedDataPath description to parallel tests troubleshooting doc (#12725) 2019-06-05 18:48:32 +02:00
Kazuaki Matsuo bb9fe57325 add how to get the matched image data by find by image as debugging (#12699)
* add mached image result section for debugging

* tweak

* add # [skip ci]

* fix typo, grammer
2019-06-05 12:44:13 -04:00
Pandorym 2b760944b0 doc[cn]: update toc.js & some docs (#12692)
* doc[cn]: update toc.js & some docs

* added the cn part of toc.js
* cn/about-appium/intro.md updated to ef7a1b17
* cn/about-appium/appium-clients.md  updated to ef49649f
* cn/writing-running-appium/running-tests.md updated to 04f65435
* cn/writing-running-appium/default-capabilities-arg.md updated to a4dd79b8
* cn/writing-running-appium/finding-elements.md updated to 438d6c3b
* cn/writing-running-appium/touch-actions.md updated to 8c15ac66
* cn/writing-running-appium/server-args.md update to 1d2f4d62
* cn/contributing-to-appium/how-to-write-docs.md update to be2acb20
* cn/contributing-to-appium/credits.md update to c986e4a6

* fix expected indentation in toc.js

* doc[cn]:  /advanced-concepts/grid.md updated to 048ca4be

* docs[cn]: move file to the correct location.

* docs[cn]: /writing-running-appium/web/hybrid.md created from 465efb48

* docs[cn]: fix bad file name
2019-06-05 12:43:15 -04:00
Simon Granger e002f05bb0 Updating the version for appium-youiengine-driver (#12718) 2019-06-04 12:40:03 -04:00
Kazuaki Matsuo 64fd885ac5 add platformVersion requirement for ios in changelog [skip ci] (#12711) 2019-06-03 21:30:58 +09:00
Ulhas Deshmukh fbb6e2ea1a updated python code for example usage (#12712)
python code to get title in example usage is incorrect, it was throwing error as "TypeError: 'str' object is not callable"
2019-06-03 07:54:05 -04:00
Jonathan Lipps 8cda72666a 1.14 beta init 2019-05-31 07:55:27 -07:00
Kelvin Gething c0f952b6e3 Update caps.md (#12677)
* Update caps.md

Describe where the Desired Capabilities are set

* Webdriver changed to uppercase W
2019-05-28 07:40:18 -04:00
Appium Triager ca4b6964fb Update generated docs [ci skip] (#12694) 2019-05-28 11:37:08 +09:00
Mori Atsushi 8922016f16 Add display-density.yml (#12693)
* Add display density doc

* Add display-density.md to toc.js
2019-05-27 13:53:11 +09:00
Isaac A. Murchie 783252b09c Move update docs travis stage into linux (#12687) 2019-05-24 08:09:42 -04:00
Appium Triager aee8250641 Update generated docs [ci skip] (#12683) 2019-05-23 14:08:09 -04:00
Isaac A. Murchie eb4ddafc36 Update python sample code (#12681) 2019-05-23 09:37:40 -04:00
Appium Triager 240810d028 Update generated docs [ci skip] (#12678) 2019-05-23 09:28:25 +09:00
Dan Graham 2ca8d941c6 docs: Document deep link native [ci skip] (#12673) 2019-05-22 16:42:18 -07:00
Mori Atsushi 77264b15dc Add network-speed.yml (#12671)
* Add network-speed.yml

* Update

* Add network-speed to toc.js

* update
2019-05-23 01:45:11 +09:00
riteshgujral1 7a8ccb5307 Update ios-webkit-debug-proxy.md (#12675)
The documentation was incorrectly mentioning the use of homebrew for building `ios-webkit-debug-proxy` from source.
2019-05-22 07:28:06 -04:00
Kazuaki Matsuo 66f07b288c move caps into uiautomator1&2 section which are not supported by espresso (#12643) 2019-05-21 09:07:50 -04:00
Isaac A. Murchie 2304304038 Fix webdriverio sample in getting-started (#12668)
* Fix webdriverio sample in getting-started

* Add -y
2019-05-21 08:45:09 -04:00
Appium Triager 5e7b6cf1a6 Update generated docs [ci skip] (#12670) 2019-05-21 12:10:11 +09:00
Kazuaki Matsuo 0500ce8287 Update replace-value.yml [ci ski] (#12664) 2019-05-20 12:52:06 -07:00
Dan Graham 90a73e6fd5 Fix incorrect link to w3c spec (#12658) 2019-05-20 07:06:38 -07:00
Kazuaki Matsuo 21afea74d2 Update capability, command, tvos doc (#12597)
* add tvOS related description, cap for android build tools version

* update basic actions, notice

* add javascript (wd) example

* tweak comments

* tweak

* make open notification false in espresso

* add webdriverio example

* add a comment to show platformName

* add a troubleshooting about xcodebuild failure [skip ci]

* address carthage error in tvOS [skip ci]

* add driver, addresses wait methods

* tweak [skip ci]

* fix review
2019-05-16 13:54:24 +09:00
greenkeeper[bot] 02c729ef9c Update appium-gulp-plugins to the latest version 🚀 (#12629)
* chore(package): update appium-gulp-plugins to version 4.1.0

* Update travis for node 10 and 12
2019-05-13 08:20:45 -04:00
greenkeeper[bot] cd07564127 chore(package): update assert to version 2.0.0 (#12633) 2019-05-13 08:19:06 -04:00
Kazuaki Matsuo cdfd8fabfc Use open file as wb mode for saving binaries (#12632) 2019-05-12 21:35:41 +09:00
Appium Triager ef38020a14 Update generated docs [ci skip] (#12627) 2019-05-10 12:46:34 -07:00
JessefSpecialisterren ef6fa9088f Fix a dead link in ios-xcuitest-real-devices.md (#12624) 2019-05-10 12:09:15 -04:00
Mori Atsushi c596608bfd Update api doc for python (#12625)
* Add TODO to python missing api doc

* Add api doc

* Add doc link

* Add api doc

* change url
2019-05-10 11:51:11 -04:00
Dan Graham bc9718899f Set UiAutomator2 as default Android driver (#12621) 2019-05-10 08:40:40 -07:00
Mykola Mokhnach 1d2f4d62ac Remove the obsolete --enable-heapdump command line arg (#12609) 2019-05-09 19:27:43 +02:00
Appium Triager 4b5a1df80d Update generated docs [ci skip] (#12608) 2019-05-09 09:09:30 -07:00
Mori Atsushi 3d7a011388 docs: Fix wrong get-performance-data.yml JSON parameter names (#12606) 2019-05-08 08:37:32 -07:00
Benjamin Cabanes da99ceedc5 build(packages): lodash force resultion to 4.17.11 minimum (#12592)
This forces the `lodash` resolution to the `4.17.11` version to prevent
dependency warnings due to prototype pollution from lower `lodash`
versions.
2019-05-06 15:36:18 -07:00
Dan Graham 24cd5837c1 Revert "chore(package): update appium-gulp-plugins to version 4.0.0 (#12591)" (#12593)
This reverts commit ea1962cdea.
2019-05-06 09:24:32 -07:00
greenkeeper[bot] ea1962cdea chore(package): update appium-gulp-plugins to version 4.0.0 (#12591) 2019-05-06 09:16:05 -07:00
Kazuaki Matsuo e35e4f7bae add setting --tmp arg as process.env.APPIUM_TMP_DIR (#12585)
* set process.env.APPIUM_TEMP_DIR

* rename

* fix comment
2019-05-04 23:52:09 +09:00
Kazuaki Matsuo 277ed72d45 pass arg to super in AppiumDriver (#12572) 2019-05-02 12:51:12 +09:00
Appium Triager e599b3acfe Update generated docs [ci skip] (#12570) 2019-05-01 23:43:44 +09:00
ritesh2689 01f86acd1a Fixing response params of element.getRect() (#12569)
It is mentioned as weight. Changing it to width
2019-05-01 22:46:41 +09:00
Dan Graham b5dce73508 docs: Prepare v1.13.0 CHANGELOG [ci skip] (#12526) 2019-04-29 08:29:59 -07:00
Appium Triager 678f0ba278 Update generated docs [ci skip] (#12554) 2019-04-28 11:18:59 +09:00
Mori Atsushi cf994b6b3d Update send-sms.yml (#12553)
Added api doc for added api to python client

Python client changes
https://github.com/appium/python-client/pull/351

Available from v0.41 (2019-04-23)
https://github.com/appium/python-client/blob/master/CHANGELOG.rst
2019-04-27 22:46:09 +09:00
Kazuaki Matsuo 2b165af0ad docs: add "remoteAppsCacheLimit" to caps [skip ci] (#12525) 2019-04-23 18:24:01 -07:00
Appium Triager 33c1d6aec2 Update generated docs [ci skip] (#12535) 2019-04-23 16:07:39 -07:00
Appium Triager 93c3111324 Update generated docs [ci skip] (#12536) 2019-04-23 16:07:21 -07:00
Isaac A. Murchie 7aefac479c Add lock app to deal with old issues (#12534) 2019-04-23 13:44:22 -04:00
Isaac A. Murchie 4ccc8665f8 Begin running sample code in CI (#12519)
* Make stage in Travis to run wd sample code

* Clean up wd sample code for Sauce runs

* Restrict to master/non-PR builds
2019-04-23 12:58:42 -04:00
Kazuaki Matsuo 6e4a0e6480 docs: add quotations for imageElementTapStrategy to explicitly show they are strings [skip ci] (#12524) 2019-04-23 09:37:51 -07:00
Dan Graham d7e01e6371 docs: Fix styling with Espresso DataMatcher 2019-04-16 13:07:43 -07:00
Kazuaki Matsuo fb53a8ff1c Km/add notice tvos [skip ci] (#12475) 2019-04-14 20:02:03 -07:00
Dan Graham e3fe431c61 docs: C# startRecordingScreen docs [ci skip] (#12499) 2019-04-14 11:09:21 -07:00
Dan Graham ea202bbd7b docs: C# stop recording screen [ci skip] 2019-04-13 15:50:45 -07:00
dpgraham b2fec324f7 Release 1.13.0-beta.3 2019-04-12 13:59:15 -07:00
Dan Graham 72adc8b0ab Add automationName deprecation warning for Android (#12481) 2019-04-12 13:58:01 -07:00
Appium Triager 79c66dcf34 Update generated docs [ci skip] (#12497) 2019-04-12 12:21:24 -07:00
Will Brock acb88dca74 docs: Update examples for WebdriverIO (#12494) 2019-04-12 11:37:26 -07:00
Lohit cacb39a708 docs: update maximize.yml code for ruby only [ci skip] (#12483)
For Ruby file shows set_to, change to maximize
2019-04-12 11:07:32 -07:00
Lohit 2d3be8a5ca docs: update set window size.yml [ci skip] (#12484)
change from maximize to resize_to in ruby code only
2019-04-12 11:07:12 -07:00
Will Brock 438d6c3b38 Update wdio debug link for v5 (#12473) 2019-04-10 16:43:18 -04:00
Appium Triager 48f28351bd Update generated docs [ci skip] (#12465) 2019-04-09 09:02:35 -07:00
biwkf 0764b6eff8 Image screen-inspector-and-logs.png not loading (#12461) 2019-04-09 10:58:45 -04:00
Kazuaki Matsuo 079b1fc08d docs: add a remark for android toggle data [ci skip] (#12455) 2019-04-08 19:07:12 -07:00
Kazuaki Matsuo 465efb481d docs: update hybrid app doc ruby example [skip ci] (#12449) 2019-04-08 11:28:45 -07:00
Kazuaki Matsuo 4c06293f01 docs: add tvos support doc [ci skip] (#12428) 2019-04-08 09:17:53 -07:00
dpgraham 2fac6ee125 Release 1.13.0-beta.2 2019-04-08 09:09:53 -07:00
Dan Graham a532aa4978 Publish nightly Appium bundle (#12308) 2019-04-07 18:36:53 -07:00
Mykola Mokhnach 3d5ce43e58 Add a possibility to parse initial values for Appium settings from capabilities (#12440) 2019-04-07 19:59:34 +02:00
Jonathan Lipps f8cdd1979d Merge pull request #12445 from appium/jlipps/caps
add docs for new chromedriverPorts cap
2019-04-05 13:36:21 -07:00
Jonathan Lipps fa4d75c7e7 add docs for new chromedriverPorts cap 2019-04-05 09:52:53 -07:00
Kazuaki Matsuo e646760a17 add a link to image elements [skip ci] (#12443)
* add a link to image elements [skip ci]
2019-04-05 14:12:30 +09:00
Jonathan Lipps 2188faacba Merge pull request #12423 from WillBrock/wb-remove-fuller
Remove invalid word from docs
2019-04-03 15:57:48 -07:00
biwkf 83ba650b12 Fix typo (#12431) 2019-04-03 13:26:41 +01:00
Isaac A. Murchie 3fbe003c84 Make heapdump a manual dependency (#12420) 2019-04-02 16:44:38 -07:00
Kazuaki Matsuo 276880ffbb add Ruby and Python examples (#12427) 2019-04-02 15:04:15 -07:00
dpgraham 99fa1f37ed v1.13.0-beta.1 2019-04-01 15:09:49 -07:00
Focus c6be91e6c3 Remove invalid word from docs 2019-04-01 15:48:41 -04:00
Kazuaki Matsuo 734850a305 add tvOS platform as xcuitest (#12401)
* add tvOS platform

* get xcuitest over 2.111
2019-03-31 09:07:51 +09:00
Isaac A. Murchie 048e25a6e3 Allow 'appium' automationName and particular platformName (#12415) 2019-03-29 14:33:13 -04:00
Dan Graham cd6a149354 chore: bump version to 1.13.0-beta.0 (#12404) 2019-03-28 13:48:18 -07:00
Appium Triager b9c4265cdc Update generated docs [ci skip] (#12399) 2019-03-27 15:10:57 -07:00
Rafael 32505a2dae FIX removing ";" from python command (#12397)
FIX removing ";" from python command
2019-03-28 00:17:25 +09:00
greenkeeper[bot] eb436fe573 fix(package): update semver to version 6.0.0 (#12395) 2019-03-27 08:04:52 -04:00
Kazuaki Matsuo c2086d609d docs: missing caps disableWindowAnimation [skip ci] (#12384) 2019-03-26 16:44:43 -07:00
Dan Graham 145c4aa9fd Add CI skip to generated docs message [ci skip] (#12388) 2019-03-26 16:44:03 -07:00
Dan Graham cfab0466ba docs: Fix bulletpoints [ci skip] 2019-03-26 14:54:51 -07:00
Appium Triager aac21af13d docs: Update generated docs [ci skip] (#12387) 2019-03-26 13:37:35 -07:00
Dan Graham dbb7c449ff docs: changelog for 1.12.1 (#12382) 2019-03-26 13:13:02 -07:00
Rafael f732fc5470 docs: Add python sample to Toggle Wifi docs [ci skip] (#12386) 2019-03-26 13:05:02 -07:00
Dan Graham 315a1b8b34 docs: Espresso DataMatcher selector [ci skip] (#12371) 2019-03-26 09:01:30 -07:00
Kazuaki Matsuo 906350fd33 update sample apk (#12380) 2019-03-25 09:29:17 -07:00
Appium Triager 4e8bbbcc88 Update generated docs (#12379) 2019-03-25 09:34:14 -04:00
Martin Seidel 5ac4338ba7 Update send-keys.yml (#12378)
The endpoint url did not contain the element_id.
2019-03-25 08:24:25 -04:00
Kazuaki Matsuo 663218ea06 remove items from 1.12.0 [skip ci] (#12373) 2019-03-24 01:16:06 +09:00
Dan Graham 0ad48e3db3 docs: fullReset happens before test not after done (#12352) 2019-03-23 00:54:30 -07:00
Isaac A. Murchie 8e5ec38d3f Add function names (#12370) 2019-03-22 15:13:02 -04:00
Dan Graham 7366bb4d8e docs: changelog for 1.12 (#12348) 2019-03-20 22:14:30 -07:00
dpgraham 3e2feb127c Changelog fixes 2019-03-20 22:14:10 -07:00
Dan Graham c6483d9a35 docs: Update docs instructions [ci skip] (#12351)
Triager Bot takes care of making pull requests to get the docs from `appium/appium` into `appium/appium.io` for us.

Updating the release instructions to get rid of the updating site docs documentation and updating the release instructions to instruct to just merge in the latest.
2019-03-20 22:09:50 -07:00
Appium Triager e7d391b8d9 Update generated docs (#12357) 2019-03-21 14:05:03 +09:00
Kazuaki Matsuo 786b14567e Update settings.md (#12353) 2019-03-19 19:57:04 -07:00
Kazuaki Matsuo c9a9aa354e add fixImageTemplateScale (#12245)
* add fixImageTemplateScale

* tweak description
2019-03-20 09:00:32 +09:00
Michael Elderhorst bbb13226a4 docs: Fix TouchAction move method names to match implementation [ci skip] (#12346) 2019-03-19 16:34:47 -07:00
Jonathan Lipps d7687660da docs: add chromedriverArgs to caps [ci skip] (#12347) 2019-03-19 16:34:03 -07:00
dpgraham e0e3c7a90a Remove GENERAL [ci skip] 2019-03-19 12:03:15 -07:00
dpgraham 030c9a7df8 base changelog 2019-03-19 12:00:16 -07:00
Dan Graham c747eae57a [wip] 1.12 changelog 2019-03-19 11:04:48 -07:00
Ramadan.Mostafa e345cc2a98 docs: Update get-context.yml [ci skip] (#12341) 2019-03-19 10:41:36 -07:00
Ramadan.Mostafa 29d4f8baa0 docs: Update get-contexts.yml [ci skip] (#12342) 2019-03-19 10:41:17 -07:00
Ramadan.Mostafa 07182b4a3f docs: Update set-context.yml [ci skip] (#12343) 2019-03-19 10:39:41 -07:00
Appium Triager b0f50f4342 docs: Update generated docs [ci skip] (#12335) 2019-03-18 09:01:15 -07:00
Kazuaki Matsuo c7cf9f6d83 address executable permission for bundletool.jar (#12333) 2019-03-18 18:34:04 +09:00
Kazuaki Matsuo 061fac0bd3 add permission mobile commands [ci skip] (#12332)
* add commands for permissions

* add `
2019-03-17 19:15:28 -07:00
Appium Triager a84b4c1e7b docs: Update generated docs [ci skip] (#12326) 2019-03-16 17:25:41 -07:00
Mori Atsushi 69e9e79221 docs: Update system-time.yml python example (#12325)
* Update system-time.yml

Added new api

* Removed unnecessary comment
2019-03-16 13:19:22 -07:00
Isaac A. Murchie 6bd4523cd2 Fix some documentation issues (#12315) 2019-03-15 16:01:12 -04:00
Dan Graham 21cd2828df Revert commits 63399 ~> e60808 (#12306) 2019-03-14 16:46:56 -07:00
dpgraham 6339926c43 Bundling script 2019-03-14 14:07:25 -07:00
dpgraham b11c828b6f Bundling script 2019-03-14 14:05:40 -07:00
dpgraham 585da2a15d Bundling script 2019-03-14 14:03:17 -07:00
Dan Graham e608088390 Set up CI with Azure Pipelines 2019-03-14 13:37:08 -07:00
Appium Triager bce4d6f91e Update generated docs (#12298) 2019-03-14 10:51:59 -04:00
Appium Triager 5896ac5439 Update generated docs (#12299) 2019-03-14 10:50:08 -04:00
Appium Triager 2ff0cb5d08 Update generated docs (#12293) 2019-03-13 08:43:49 -04:00
Dan Graham 00e7e3d168 docs: Clarify Android Key code doc, provide link [ci skip] (#12290) 2019-03-13 08:42:38 -04:00
znzn b5fc8f5d59 Update move.yml (#12291) 2019-03-13 08:39:16 -04:00
Dan Graham 88947a884b Update long-press-keycode.yml (#12289) 2019-03-12 19:57:28 -07:00
Appium Triager 71e326e01a docs: Update generated docs [ci skip] (#12286) 2019-03-11 20:52:28 -07:00
Kazuaki Matsuo 8c15ac66f1 add W3C link in touch actions doc (#12159)
* add W3C link in touch actions doc

* address partially implementation, example

* fix reviews
2019-03-12 09:22:47 +09:00
Kazuaki Matsuo 1f97ee3d58 move uninstallOtherPackages to for android [skip ci] (#12278)
* move uninstallOtherPackages to for android [skip ci]

* fix review [skip ci]
2019-03-10 16:59:37 +09:00
Appium Triager 113a9189d6 docs: Update generated docs [ci skip] (#12276) 2019-03-09 13:48:07 -08:00
Alex 873d85f47c docs (UiAutomator2): Fixed command name mobile:deviceInfo (#12275) 2019-03-09 09:20:06 +09:00
Appium Triager 1b7a792358 docs: signalStrength typo fix in markdown [ci skip] (#12274) 2019-03-08 10:22:11 -08:00
flyofsky 106ccf931a Fixed to set tizen driver in appium (#12270) 2019-03-08 09:23:11 -05:00
Khanh Do 829845e71b docs: Fixed typo in signalStrengh [ci skip] (#12262) 2019-03-05 22:04:06 -08:00
Dan Graham 146d18a596 fix: Skip prune shrinkwrap if no "npm-shrinkwrap.json" (#12253) 2019-03-04 22:37:15 -08:00
Isaac A. Murchie 9e50423d1e Add webkitDebugProxyPort to webkit debug proxy docs (#12252)
* Add webkitDebugProxyPort to webkit debug proxy docs

* Fix format
2019-03-04 16:58:42 -05:00
dpgraham 90588806cd v1.12.0-beta.0 2019-03-04 10:08:43 -08:00
Appium Triager 45d71de9b0 Update generated docs (#12244) 2019-03-04 10:44:16 +09:00
Kazuaki Matsuo 4efd3df586 add skipLogcatCapture, skipLogCapture (#12206)
* add skipLogcatCapture for android

* add skipLogCapture for ios
2019-03-04 09:58:41 +09:00
Kazuaki Matsuo a3ee59bf9e add fix image template scale [skip ci] (#12235) 2019-03-02 10:20:54 +09:00
Dan Graham 93cb1d85b4 docs: clarify Launch App docs better [ci skip] (#12233) 2019-02-28 21:37:12 -08:00
Nic Di Noia 853bc808bb Update parallel-tests.md (#12222)
Add a warning about Jenkins ProcessTreeKiller
2019-02-26 11:48:12 +00:00
Kazuaki Matsuo a08cc42c65 add mjpegScalingFactor and enableAsyncExecuteFromHttps (#12212) 2019-02-26 08:53:48 +09:00
Appium Triager 959afa9f9d Update generated docs (#12211) 2019-02-24 10:55:52 +09:00
Kazuaki Matsuo 7cfb65c1fe add autoLaunch and uninstallOtherPackages, tweak otherApps table and lang/local for ios (#12169)
* add autoLaunch and uninstallOtherPackages, tweak otherApps table and langage/local for ios

* tweak caps table
2019-02-23 13:52:11 +09:00
Rafael d4b0cf3eb8 docs: add suport to python [ci skip] (#12208)
add suport to python
2019-02-22 11:14:05 -08:00
Jonathan Lipps ef49649f5e docs: add some javascript clients to the clients list [ci skip] (#12204) 2019-02-21 20:46:09 -08:00
greenkeeper[bot] 5cd688c4d3 chore(package): update mocha to version 6.0.0 (#12184) 2019-02-20 15:42:47 -05:00
Dan Graham 72cb565741 Add prepublish script to prune devDependencies from shrinkwrap (#12194) 2019-02-20 10:36:54 -08:00
greenkeeper[bot] 541beecc27 Update mocha in group sample-code to the latest version [ci skip] 🚀 (#12185) 2019-02-19 20:31:07 -08:00
Dan Graham 8e77a96de4 docs: 1.11.1 changelog [ci skip] (#12165) 2019-02-19 11:21:31 -08:00
Appium Triager deca9c3180 docs: Update generated docs [ci skip] (#12158) 2019-02-13 10:22:44 -08:00
biwkf 856ceb3339 docs: clarify that only real devices support volume keys (#12136) 2019-02-13 09:16:57 -08:00
Kazuaki Matsuo c98a4dd73a update changelog [skip ci] (#12153) 2019-02-13 19:17:29 +09:00
Dan Graham 259b2f3005 docs(Espresso): Document GeneralSwipeAction and ClickAction [ci skip] (#12149) 2019-02-12 10:29:55 -08:00
Jonathan Lipps b5a6088c7a Merge pull request #12150 from appium/dpgraham-document-datamatcher
docs: Add dataMatcher selector document [ci skip]
2019-02-11 20:39:02 -08:00
Dan Graham 16accdac94 docs: Add dataMatcher selector document [ci skip] 2019-02-11 16:33:58 -08:00
Isaac A. Murchie 60fc87ea2d Lazy load drivers upon request (#12127)
* Lazy load drivers upon request

* Handle different cases in aUtOmAtIoNnAmE
2019-02-07 08:27:10 -08:00
Kazuaki Matsuo 59a7dbcdbe add unlock capability [skip ci] (#12119) 2019-02-06 09:40:27 +09:00
Appium Triager 24df4d585e Update generated docs (#12117) 2019-02-05 14:26:46 +09:00
Jonah a1706d89fd Merge pull request #12116 from appium/Jonahss-patch-1
update documentation for mobile:startLogsBroadcast
2019-02-01 13:43:43 -08:00
Jonah 1d86032037 update documentation for mobile:startLogsBroadcast
The websocket path was missing a term.
2019-02-01 12:35:00 -08:00
Kazuaki Matsuo 1d43acfd1f add missing unlock cap (#12106)
* add missing unlock cap

* fix review [ci skip]
2019-02-01 15:43:01 +09:00
Appium Triager 04e68b024c Update generated docs (#12108) 2019-02-01 11:45:24 +09:00
greenkeeper[bot] 38acc6daac Update dependencies to enable Greenkeeper 🌴 (#12105)
* chore: add Greenkeeper config file

* chore(package): update dependencies

* chore: remove old greenkeeper config and adjust new
2019-01-31 12:28:25 -08:00
biwkf 264a58e9ac Cleanup example code formatting (#12107) 2019-01-31 08:57:25 -08:00
biwkf 5f1694d323 Update value to print out in for loop (#12100)
Change value to print String contextName not contextNames within for loop
2019-01-30 09:20:40 -08:00
Kazuaki Matsuo aba8fac597 Update CHANGELOG.md (#12088) 2019-01-29 09:06:26 +09:00
Isaac A. Murchie fe03aedb1b Add npm/yarn question to issue template (#12070) 2019-01-24 13:50:37 -05:00
Appium Triager 0e582a2eff Update generated docs (#12074) 2019-01-24 12:00:19 -05:00
Isaac A. Murchie bcd743ff11 Move local gulp tasks out (#12075) 2019-01-24 11:47:02 -05:00
biwkf 6cf4de2a62 Fix Typo in Docs (#12071)
extra 'e' in progress
2019-01-24 10:33:19 -05:00
Appium Triager 62029e26c6 Update generated docs (#12066) 2019-01-25 00:28:56 +09:00
marwahaks 707afccb48 Update mobile-command.yml (#12051)
added c# example
2019-01-24 17:42:41 +09:00
Appium Triager 14010b2524 Update generated docs (#12052) 2019-01-23 11:52:27 +09:00
Rajdeep aa51ce3134 Update mobile-command.yml for driving out of app areas using uiautomator (#12038)
* Update mobile-command.yml

* fix review

* add link to android documentation
2019-01-22 05:44:18 -05:00
Isaac A. Murchie fd4afcacc2 Move to use local authorize-ios (#12015) 2019-01-21 07:05:42 -05:00
Kazuaki Matsuo 2dd348e391 Update ios-xcuitest-real-devices.md (#12036) 2019-01-19 22:06:17 +01:00
Isaac A. Murchie 701fc16468 Update appium-ios-driver to 4.0.0 (#12037) 2019-01-19 08:13:39 -05:00
Kazuaki Matsuo 783c5e3c2e ignore .lock file in ruby sample code (#12034) 2019-01-19 15:19:51 +09:00
Appium Triager 896072ebf5 Update generated docs (#12035) 2019-01-19 15:19:25 +09:00
Julia 5d77509703 Update scroll.yml (#12032) 2019-01-19 14:16:56 +09:00
Appium Triager bba037d655 Update generated docs [ci skip] (#12031) 2019-01-18 08:56:20 -08:00
biwkf 2f9e339482 Fix typo (#12030) 2019-01-18 09:21:07 -05:00
Dan Graham b90aa66964 1.11 Changelog [ci skip] (#11973) 2019-01-15 15:02:18 -08:00
Isaac A. Murchie 97fbb1942e Update node version checks (#11996) 2019-01-15 12:06:00 -05:00
greenkeeper[bot] 41941a1c9d Update appium-ios-driver to the latest version 🚀 (#12008)
* fix(package): update appium-ios-driver to version 3.0.0

* Move version to format we use
2019-01-15 11:15:37 -05:00
Dan Graham ac0bed0a80 Add deprecation notice when automationName not set (#11979)
* Add deprecation notice when automationName not set

* PR changes
2019-01-14 19:56:34 -08:00
Appium Triager 76778da778 Update generated docs [ci skip] (#12000) 2019-01-14 13:14:37 -08:00
TTL 7c9058a1e1 remove space before [```] at line 11 and line 16 (#11990)
1, remove space before [```] at line 11 and line 16  which make [```] not work。
2, fix the page : http://appium.io/docs/cn/advanced-concepts/ios-webkit-debug-proxy/
2019-01-14 07:36:33 -05:00
Dan Graham 32d5deba53 Shrinkwrap fixes (#11969)
* Reinstall node modules before shrinkwrapping
* Add script to check shrinkwrap will be packaged
2019-01-10 08:35:05 -08:00
Dan Graham 2c644c7f2a docs: Include chromedriverDisableBuildCheckin caps.md [ci skip] (#11972)
from https://github.com/appium/appium-android-driver/pull/474
2019-01-09 14:31:28 -08:00
greenkeeper[bot] 10753839a9 Update eslint-config-appium to the latest version 🚀 (#11952)
* chore(package): update eslint-config-appium to version 4.0.1

* chore: fix linting

* chore: rebase and done
2019-01-08 07:43:50 -06:00
Appium Triager 97f324a58b Update generated docs [ci skip] (#11954) 2019-01-07 15:39:50 -08:00
Kazuaki Matsuo 25040552ed Add app management (#11940)
* add activate, terminate and app state

* update tweak urls

* add android case

* tweak links

* Update app-state.yml
2019-01-08 00:17:33 +09:00
Linda_pp f5b8bf94f8 Fix code snippet in 'Getting Started' doc (#11951) 2019-01-07 08:22:14 -06:00
Appium Triager 57cec2cb43 Update generated docs (#11948) 2019-01-06 00:19:53 +09:00
Mori Atsushi 7a1e9076f4 Update system-time.yml (#11947)
Removed "()" from device_time(python) since device_time has property decorator.

https://github.com/appium/python-client/blob/master/appium/webdriver/webdriver.py
2019-01-05 21:13:00 +09:00
Appium Triager 6a87f37836 Update generated docs (#11944) 2019-01-04 14:32:47 -06:00
Isaac A. Murchie 543781146f Fix errors in links in docs (#11943) 2019-01-04 14:01:35 -06:00
Harry b428cdb030 Fix typos (#11939) 2019-01-04 08:23:54 -06:00
Dan Graham f39f2d4728 Fix DO NOT EDIT showing up in code examples [ci skip] (#11934) 2019-01-03 10:53:46 -08:00
Isaac Murchie 872cb8563e Fix typo in docs toc 2019-01-03 10:12:30 -06:00
Isaac A. Murchie e0c4106d22 Lint and update JS sample code (#11927)
* Lint and update JS wd sample code

* Lint and update JS webdriverio sample code

* Add JS sample code to greenkeeper
2019-01-03 09:40:53 -05:00
dpgraham 844094a7bb Update documents [ci skip] 2019-01-02 10:25:33 -08:00
Sai Krishna 4df45addc3 update WDIO test to v5 (#11919)
* update WDIO test to v5

* fix review
2019-01-02 09:57:39 -08:00
dpgraham 4a4f1cf20e Release 1.11.0-beta.3 2018-12-26 09:36:39 -08:00
Isaac Murchie e793e279f9 MAke sure gulp is there before uploading bundle 2018-12-21 17:20:20 -05:00
Isaac A. Murchie 29922f8931 Store built bundle in github not bintray (#11893) 2018-12-21 16:47:44 -05:00
Kazuaki Matsuo f60b12cae0 add normalizeTagNames settings (#11877)
* add normalizeTagNames settings

* Update settings.md

* fix review [ci skip]
2018-12-21 10:16:05 -08:00
Isaac A. Murchie eaf00bc3f4 Work on Travis build (#11885) 2018-12-21 09:54:41 -05:00
Dan Graham 23471c7f01 Fix CI problems with auto-generating docs (#11873)
* Fix auto generate docs

* Fix auto generate docs

* Fix auto generate docs

* Fix

* Fix

* Fix

* Fix

* Fix

* Fix

* Fix

* Fix
2018-12-20 08:38:06 -05:00
Appium Triager aaa6bad146 Update generated docs (#11875) 2018-12-19 16:51:26 -08:00
Isaac A. Murchie 5229607571 Make sure xcuitest driver is built when bundling (#11871)
* Make sure xcuitest driver is built when bundling

* Test documentation generation on PRs too

* Run docs gen testing on Linux
2018-12-19 16:22:13 -05:00
Anna Wyrwał afab8be9c5 Docs: Description for skipDeviceInitialization cap (#11840)
Added description for newly introduced capability for AndroidDriver:
'skipDeviceInitialization'.
2018-12-18 16:23:17 -08:00
Isaac A. Murchie f1babf9163 Fix docs PR creation condition (#11857) 2018-12-17 13:54:15 -05:00
Jonathan Lipps 21cfe42de1 add 'npm run clean' 2018-12-17 10:20:44 -08:00
Isaac A. Murchie f88c9958ac Fix color stripping from console logger (#11853) 2018-12-17 10:10:06 -05:00
Appium Triager 799fd7b037 Update generated docs [ci skip] (#11850) 2018-12-17 14:01:11 +05:30
Kazuaki Matsuo 7dd34ca8b9 append explanation of element in backdoor (#11849)
* append explanation of element in backdoor

* fix typo

* Update mobile-command.yml
2018-12-17 13:33:33 +05:30
Appium Triager 7e61cbb2e0 Update generated docs [ci skip] (#11847) 2018-12-15 14:48:55 -08:00
Takeshi Kishi 735df9aee9 fix toc.js (add missing contents, clipboard and emulator commands) (#11846) 2018-12-16 01:22:22 +09:00
Isaac Murchie 4dcc36ba74 Remove ime and unlock apps from packweb config 2018-12-14 09:42:47 -05:00
Kazuaki Matsuo cf2841d727 fix name in mobile:flashElement [ci skip] (#11837) 2018-12-14 09:46:21 +09:00
Dan Graham ebe93becc3 docs: Mobile flash element for Espresso [ci skip] (#11831) 2018-12-13 13:20:16 -08:00
Dan Graham 17c5b4b73e docs: Add more "do not edit" warnings (#11829) 2018-12-13 13:15:47 -08:00
Anna Wyrwał e097326f8e Docs capability skip server installation update (#11832)
* Capability skipServerInstallation introduced

* Fixed grammar
2018-12-13 18:29:32 +09:00
Dan Graham 12022c4161 Remove 'beta' from doc [ci skip] (#11828) 2018-12-12 13:08:58 -08:00
Appium Triager 9f81f2740a Update generated docs [ci skip] (#11826) 2018-12-12 11:00:13 -08:00
dpgraham 0c44036413 Release 1.11.0-beta.2 2018-12-12 10:26:30 -08:00
Appium Triager 65ad7bf4ba Update generated docs [ci skip] (#11825) 2018-12-12 10:19:56 -08:00
dpgraham 032275cdbd Skip generate-docs on tag 2018-12-12 10:09:07 -08:00
Dan Graham b6440cbefc Do not generate docs on PR (#11823) 2018-12-12 10:02:53 -08:00
dpgraham 49832c3033 Release 1.11.0-beta.1 2018-12-12 09:51:21 -08:00
Arne c9064d44b4 docs: add C# mouse click code sample (#11821) 2018-12-12 09:49:01 -08:00
Arne 9ace7e881c docs: Add C# mouse moveto code sample (#11822) 2018-12-12 09:48:21 -08:00
Kazuaki Matsuo 0cc676d6f9 move mobile commands from md to yml (#11818)
* move mobile commands from md to yml

* add spaces [ci skip]
2018-12-13 01:09:33 +09:00
Dan Graham 372171f7af Use CI to update documentation (#11731) 2018-12-11 15:20:25 -08:00
Dan Graham a2ff1b5afd Updating developer instructions [ci skip] (#11728) 2018-12-11 09:03:50 -08:00
Kazuaki Matsuo 88eded2b25 bump minimum Node version to 8 in get started (#11801) 2018-12-08 15:16:26 +09:00
Dan Graham 3c5ee31816 Fix Java typo in sample [ci skip] 2018-12-07 11:30:18 -08:00
Dan Graham 08c9169a73 Remove outdated badges [ci skip] (#11794) 2018-12-06 22:57:11 -08:00
Dan Graham 9c2c455a30 Fix never-ending test (#11789) 2018-12-06 06:31:28 -08:00
Kazuaki Matsuo b31c8cf58b fix typo of setTime (#11791)
* fix typo of setTime

* Fix typo in setTime [ci skip]
2018-12-06 18:00:42 +09:00
Kazuaki Matsuo b001cb6a60 Add mobile commands for espresso (#11784)
* add description for mobile commands(espresso) [ci skip]

* add doc for mobile backdoor [ci skip]
2018-12-05 19:52:12 +09:00
Dan Graham b0257be3a9 Fix NPM audit issues (#11766) 2018-12-04 08:45:35 -08:00
Christian Bromann 05fecec9b7 Escape pipes in touchAction markdown (#11780) 2018-12-04 17:45:11 +05:30
Christian Bromann 37833cfbe0 Escape pipes in touchAction markdown (#11781)
related to #11780
2018-12-04 17:44:59 +05:30
Kazuaki Matsuo 4e94937171 get rid of deprecated usage (#11768) 2018-12-01 09:33:48 +09:00
dpgraham 0aada1ca11 Fix markdown typo [ci skip] 2018-11-29 09:22:42 -08:00
Kazuaki Matsuo d48d26f14f separate espresso and uiautomator2 specific caps from general android caps into their own spaces (#11762)
* separate espresso and uiautomator2 specific caps from android into their own spaces

* add separator
2018-11-29 10:04:34 +00:00
dpgraham 98f6d0a4d9 Update docs [ci skip] 2018-11-28 16:12:36 -08:00
dpgraham b3ff08e4a3 1.11 beta 2018-11-28 15:50:54 -08:00
Isaac A. Murchie b03f175d3d Update sudo/dist in travis (#11760) 2018-11-28 13:48:13 -05:00
Sai Krishna 265b963181 added espressoserver launch timeout (#11749) 2018-11-28 08:35:43 -05:00
greenkeeper[bot] d301d9ef12 fix(package): update appium-tizen-driver to version 1.1.1-beta.3 (#11752) 2018-11-28 08:32:26 -05:00
Kazuaki Matsuo bf1a0d16eb add mobile:isToastVisible for espresso driver (#11742)
* add mobile:isToastVisible for espresso driver
2018-11-28 08:04:59 +09:00
Dan Graham 7c5b73945b Update mobile-command.yml [ci skip] (#11747) 2018-11-27 14:15:59 -08:00
Khanh Do fafd31457d Update hide-keyboard.yml [ci skip] (#11727) 2018-11-26 21:16:23 -08:00
Dan Graham e111b783d9 Update mobile-command.yml [ci skip] (#11740) 2018-11-26 16:11:47 -08:00
Dan Graham 292e099224 Document mobile:siri [ci skip] 2018-11-26 14:04:55 -08:00
Diego Molina cde64e4f20 Updating docs to show avdLaunchTimeout real value (#11738) 2018-11-26 18:36:11 +00:00
Dan Graham a95edb1623 Instruct animation disabling for Espresso [ci skip] (#11640) 2018-11-23 14:45:39 -08:00
Dan Graham ffb1ff25bb 1.10 changelog [ci skip] (#11651) 2018-11-23 14:45:10 -08:00
dpgraham 9fb3e55dae Update auto-generated docs [ci skip] 2018-11-23 09:34:35 -08:00
Jonathan Lipps caa40a9366 only allow cors when using a special flag (#11719)
* only allow cors when using a special flag

* add docs about --allow-cors flag
2018-11-22 13:14:51 -08:00
Kazuaki Matsuo 446241539c add screenshotQuality in settings.md (#11723)
* add screenshotQuality in settings.md

* guide to capability in appium-xcuitest-driver to reduce duplication
2018-11-22 13:14:17 -08:00
Jonathan Lipps 70bd1f0e9f add image element finding docs [ci skip] (#11724)
* add image element finding docs

* add new advanced topics to doc toc
2018-11-22 13:13:54 -08:00
Ersoy TORAMAN 029f080caf Update Session C# samples (#11669)
* added c# samples to example.yml and session folder

* C# samples for sesion and example.yml are done.
2018-11-22 09:47:08 -08:00
Dan Graham 54b2684664 NPM script to shrinkwrap prod deps (#11718) 2018-11-21 15:41:35 -08:00
Kazuaki Matsuo 53da4d467d add allowTestPackages (#11715) 2018-11-22 07:59:31 +09:00
426 changed files with 19278 additions and 2886 deletions
+1 -1
View File
@@ -1,2 +1,2 @@
sample-code
coverage
node_modules
+3 -2
View File
@@ -8,6 +8,7 @@ Briefly describe the issue you are experiencing (or the feature you want to see
* Last Appium version that did not exhibit the issue (if applicable):
* Desktop OS/version used to run Appium:
* Node.js version (unless using Appium.app|exe):
* Npm or Yarn package manager:
* Mobile platform/version under test:
* Real device or emulator/simulator:
* Appium CLI or Appium.app|exe:
@@ -18,8 +19,8 @@ If necessary, describe the problem you have been experiencing in more detail.
## Link to Appium logs
Create a [GIST](https://gist.github.com) which is a paste of your _full_ Appium logs, and link them here.
Do _NOT_ paste your full Appium logs here, as it will make this issue very long and hard to read!
Create a [GIST](https://gist.github.com) which is a paste of your _full_ Appium logs, and link them here.
Do _NOT_ paste your full Appium logs here, as it will make this issue very long and hard to read!
If you are reporting a bug, _always_ include Appium logs!
+26
View File
@@ -0,0 +1,26 @@
# Configuration for Lock Threads - https://github.com/dessant/lock-threads
# Number of days of inactivity before a closed issue or pull request is locked
daysUntilLock: 365
# Skip issues and pull requests created before a given timestamp. Timestamp must
# follow ISO 8601 (`YYYY-MM-DD`). Set to `false` to disable
skipCreatedBefore: false
# Issues and pull requests with these labels will be ignored. Set to `[]` to disable
exemptLabels: []
# Label to add before locking, such as `outdated`. Set to `false` to disable
lockLabel: false
# Comment to post before locking. Set to `false` to disable
lockComment: >
This thread has been automatically locked since there has not been
any recent activity after it was closed. Please open a new issue for
related bugs.
# Assign `resolved` as the reason for locking. Set to `false` to disable
setLockReason: false
# Limit to only `issues` or `pulls`
only: issues
+2
View File
@@ -45,7 +45,9 @@ sample-code/javascript-wd/node_modules
sample-code/php/vendor
sample-code/php/composer.lock
sample-code/java/out/
sample-code/ruby/Gemfile.lock
sample-code/python/test/results/
sample-code/python/test/input
sample-code/python/.pytest_cache/
sample-code/csharp/test/bin
sample-code/csharp/test/obj
+116 -23
View File
@@ -1,43 +1,100 @@
language: node_js
node_js: "10"
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-4.8
- build-essential
env:
global:
- CXX=g++-4.8
node_js: "10"
jobs:
include:
- stage: Tests
os:
- linux
- sudo: false
name: node 10
os: linux
script: npm run test && npm run e2e-test
node_js: "11"
after_script: npm run coverage
- stage:
os:
- linux
- sudo: false
name: node 12
os: linux
script: npm run test && npm run e2e-test
node_js: "10"
node_js: "12"
- stage:
os:
- linux
- sudo: false
script: npm run test && npm run e2e-test
node_js: "8"
- stage:
os:
- linux
- sudo: false
name: test documentation generation
os: linux
before_script:
- npm install
script:
- npm run generate-docs
- stage: Sample Code
name: JavaScript (wd)
# only want to run this on the main master branch
if: branch = master AND type != pull_request
env:
# this is just to indicate in the Travis job list that this is generating docs
- GENERATE_DOCS=true
script: npm run generate-docs
- stage: BinTray Bundle Build and Upload
- SAUCE_LABS=1
install:
- cd sample-code/javascript-wd
- npm install
script:
- npm run test
- stage:
name: Python
# only want to run this on the main master branch
if: branch = master AND type != pull_request
os: linux
language: python
python: "2.7"
env:
- SAUCE_LABS=1
before_install:
- pip install --upgrade pip
install:
- cd sample-code/python
- pip install -r requirements.txt
- pip install pytest-xdist
script:
- py.test -v -n 30 test
- stage: Update assets
name: Documentation
os: linux
if: branch = master AND type != pull_request AND !tag
env:
- GITHUB_TOKEN=$TRIAGER_BOT_TOKEN
before_install:
# install linuxbrew
- sh -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)"
- test -d /home/linuxbrew/.linuxbrew && eval $(/home/linuxbrew/.linuxbrew/bin/brew shellenv)
- echo "eval \$($(brew --prefix)/bin/brew shellenv)" >>~/.profile
install:
- npm install
before_script:
# do git stuff
- brew install hub
- hub --version
- git remote set-url origin https://triager:$TRIAGER_BOT_TOKEN@github.com/appium/appium
- git checkout -b generate-docs-$TRAVIS_COMMIT
script:
# Generate the docs
- npm run generate-docs
- git add .
# log the status so we know what is going on, on failure
- git status -s
# If docs were generated, make a PR to update the docs
- |
if [[ -n $(git status -s) ]]; then
git commit -a -n -m 'Update generated docs [ci skip]';
git push origin generate-docs-$TRAVIS_COMMIT;
hub pull-request -b "appium:master" -h "appium:generate-docs-$TRAVIS_COMMIT" -m "Update auto-generated docs";
fi
- stage:
name: Bundle
# only want to run this on the main master branch
if: branch = master AND type != pull_request
os:
@@ -49,6 +106,7 @@ jobs:
- CXX=g++
before_install:
- gcc --version
- brew upgrade carthage
install:
# Install prod dependencies
- npm install
@@ -56,10 +114,45 @@ jobs:
# Install only the dev dependencies that we need
- npm install --only=dev gulp
- npm install --only=dev appium-gulp-plugins
# get appium-xcuitest-driver fully built
- pushd node_modules/appium-xcuitest-driver/WebDriverAgent
# do not use build script because Travis _will_ have rate limits
- carthage bootstrap --no-use-binaries
- cp Cartfile.resolved Carthage
- mkdir -p ./Resources/WebDriverAgent.bundle
- popd
before_script:
# Build the assets
- npm run build
# Remove the dev depenedencies
- npm prune
script: npm run zip-and-upload
script:
- npm run zip
- npm install --only=dev gulp
- npm install --only=dev appium-gulp-plugins
- npm run upload
- stage: Update appium.io
if: tag
os: osx
env:
- HUB_VERBOSE=true
- GITHUB_TOKEN=$TRIAGER_BOT_TOKEN
before_script:
- brew install hub
- pip install mkdocs==0.16.3
# Checkout appium.io repository
- git clone https://triager:$TRIAGER_BOT_TOKEN@github.com/appium/appium.io.git --branch=gh-pages && cd appium.io/
- git checkout -b docs-$TRAVIS_TAG
- bundle install
- npm install
script:
# Build the docs and make a PR to get them on appium.io
- npm run build:docs
- git commit -a -n -m 'Updated docs for latest Appium version'
- git push origin docs-$TRAVIS_TAG
- hub pull-request -b "appium:gh-pages" -h "appium:docs-$TRAVIS_TAG" -m "Update documentation for latest version" | exit 0 # The PR command works but always returns non-negative
+200
View File
@@ -1,3 +1,203 @@
CHANGES IN VERSION 1.13.0 (FROM 1.12.1)
===================================
Appium 1.13.0 is a minor release
#### General
* Appium 1.13 will be the last minor version to use [UiAutomator1](https://github.com/appium/appium-android-driver) as the default Android automation. As of Appium 1.14, the default Android driver will be [UiAutomator2](https://github.com/appium/appium-uiautomator2-driver). If you don't set the `automationName` for an Android session a big [warning](https://github.com/appium/appium/pull/12481) will be displayed notifying you of the change. This will be a breaking change, and it's recommended if you wish to keep the same behavior, add the capability `automationName=UiAutomator1` to your scripts
* Appium 1.13 will be the last minor version to support Node v8. As of Appium 1.14 the supported Node versions will be v10 and v12.
* Added capability `defaultImageTemplateScale` to allow arranging of image comparison logic [#307](https://github.com/appium/appium-base-driver/pull/307)
* Fixes:
* Treat W3C /property and /attribute as aliases in a web context [#311](https://github.com/appium/appium-base-driver/pull/311)
#### Android
* New capabilities:
* `remoteAppsCacheLimit`: sets the limit for how many APKs will be cached on a device [#523](https://github.com/appium/appium-android-driver/pull/523)
* `chromedriverPorts`: allows specifying multiple ports or a range of Chromedriver ports to use for web tests [#529](https://github.com/appium/appium-android-driver/pull/529)
* `buildToolsVersion`: allows you to set the Android `build-tools` version to be something different than the default, which is to use the most recent version [#532](https://github.com/appium/appium-android-driver/pull/532)
* Fixes:
* Emulators have a bug where they sometimes go offline when root/unroot is called. Only affects unrooted emulators. Workaround is to check if a device went offline after root/unroot was called and then restarting the ADB server if it did [#443](https://github.com/appium/appium-adb/pull/443)
* Calls to `mobile:` endpoints weren't being called in web context. Default now is that, in a web context, the native mobile endpoint is always called [#527](https://github.com/appium/appium-android-driver/pull/527)
* `network_connection` endpoint was also not usable from web context [#531](https://github.com/appium/appium-android-driver/pull/531)
* `pushFile` was not working on some later Android SDK's due to permission errors [#439](https://github.com/appium/appium-adb/pull/439)
* Default values in caps not being set correctly [#436](https://github.com/appium/appium-adb/pull/436)
* No longer uninstalls apps when session is terminated if `dontStopAppOnReset` is set [#530](https://github.com/appium/appium-android-driver/pull/530)
* Allow touch actions in a web context. Only works for absolute coordinates. JSONWP only, not related to W3C Actions implementation [#534](https://github.com/appium/appium-android-driver/pull/534/files)
* Update Chromedriver to 73.0.0 [#318](https://github.com/appium/appium-base-driver/pull/318)
#### Android (UiAutomator2)
* Use UiAutomator's screenshot method when default screenshoter fails [#264](https://github.com/appium/appium-uiautomator2-server/pull/264)
* Add detailed network information to the device information endpoint (appium/device/info) [#265](https://github.com/appium/appium-uiautomator2-server/pull/265). Addresses [Issue #12502](https://github.com/appium/appium/issues/12502)
#### Android (Espresso)
* Fixes:
* Changed incorrect naming of Espresso argument `installTimeout` to the correct `androidInstallTimeout` [#426](https://github.com/appium/appium-espresso-driver/pull/426/files)
* Use ADB instead of Espresso to verify activities for better reliability [#425](https://github.com/appium/appium-espresso-driver/pull/425/files)
#### iOS
* Support webview testing for real devices running iOS 12.2+ (1.12.1 already added support for iOS Simulators) [#122](https://github.com/appium/appium-remote-debugger/pull/122). Make sure your ios-webkit-debug-proxy is [up-to-date](https://github.com/google/ios-webkit-debug-proxy/releases/latest) for real devices.
* Supports tvOS [#151](https://github.com/appium/WebDriverAgent/pull/151).
* See [documentation](https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/ios/ios-tvos.md) for details.
* Be sure to update Carthage to the [latest](https://github.com/Carthage/Carthage/releases) to handle TVOs dependencies
* Fixes:
* Improve performance of video recording by using superior startup detection tools [#12486](https://github.com/appium/appium/issues/12486)
* Not able to change video recording parameters in IOS [#12463](https://github.com/appium/appium/issues/12463)
* Change behavior of capability `showXcodeLog` so that when it is explicitly set to false, don't print any Xcode logs, even error logs [#12466](https://github.com/appium/appium/issues/12466)
CHANGES IN VERSION 1.12.1 (FROM 1.12.0)
===================================
* Appium 1.12.1 is a patch release that addresses iOS Simulator 12.2 WebView issues
* `platformVersion` becomes a required capability
#### iOS
* `platformVersion` is necessary for real devices
* Updated Appium Remote Debugger so that Safari webview tests are compatible with Xcode 10.2 (addresses [issue #12239](https://github.com/appium/appium/issues/12239)) [#118](https://github.com/appium/appium-remote-debugger/pull/118)
* Fix `screenshotQuality` cap not being forwarded to WebDriverAgent [#907](https://github.com/appium/appium-xcuitest-driver/pull/907)
* Fix xctestrun file detection when `useXctestrunFile` is true [#903](https://github.com/appium/appium-xcuitest-driver/pull/903)
* Fix problem with Appium not using cached WebDriverAgent [#909](https://github.com/appium/appium-xcuitest-driver/pull/909)
CHANGES IN VERSION 1.12.0 (FROM 1.11.1)
===================================
Appium 1.12.0 is a minor release
#### General
* Fix wrong coordination in _find element by_ . [#306](https://github.com/appium/appium-base-driver/pull/306), [#307](https://github.com/appium/appium-base-driver/pull/307)
* Added `fixImageTemplateScale` to arrange image comparison logic. Read [doc](docs/en/advanced-concepts/image-elements.md) for more details
#### Android
* Add `mobile:` endpoint for enabling/disabling/viewing app permissions [#305](https://github.com/appium/appium-uiautomator2-driver/pull/305)
* Fix exception caused when Appium Settings fails to provide geolocation [#493](https://github.com/appium/appium-android-driver/pull/493)
* Stop chromedriver proxies when reset command is called [#495](https://github.com/appium/appium-android-driver/pull/495)
* Fix pin unlock errors. Turn screen off before doing pin unlock to ensure pin unlock screen has no existing entries. [#498](https://github.com/appium/appium-android-driver/pull/498)
* Add `uninstallOtherPackages` capability [#289](https://github.com/appium/appium-uiautomator2-driver/pull/289)
* Fix pattern unlock problems caused by not using relative touches [#489](https://github.com/appium/appium-android-driver/pull/489)
* Add `chromedriverArgs` capability that passes chromedriver flags into sessions [#519](https://github.com/appium/appium-android-driver/pull/519/files)
* Add `skipLogcatCapture` capability that skip capturing logcat, for possible performance enhancement.
#### Android (UiAutomator2 only)
* Verify file system permissions before signing files to avoid confusing signing errors [#294](https://github.com/appium/appium-uiautomator2-driver/pull/294)
#### Android (Espresso only)
* Add `dataMatcher` selector strategy [#386](https://github.com/appium/appium-espresso-driver/pull/386)
* `mobile:` commands
* Call UiAutomator commands from Espresso [#371](https://github.com/appium/appium-espresso-driver/pull/371)
* `swipe` and `clickAction` delegates to Espresso's `GeneralSwipeAction` and `GeneralClickAction` [#372](https://github.com/appium/appium-espresso-driver/pull/372)
* `webAtom` which delgates to Espresso's `Web Atoms` library [#380](https://github.com/appium/appium-espresso-driver/pull/380)
* Fix orientation change event to not require element [#383](https://github.com/appium/appium-espresso-driver/pull/383)
* Add `remoteAdbHost` capability to allow tests on remote machines [#381](https://github.com/appium/appium-espresso-driver/pull/381)
#### iOS
* Add `eventLoopIdleDelaySec` capability. Delays the invocation of `-[XCUIApplicationProcess setEventLoopHasIdled:]` by the number of seconds specified with this capability. This can help quiescence apps that fail to do so for no obvious reason (and creating a session fails for that reason) [#881](https://github.com/appium/appium-xcuitest-driver/pull/881)
* Add `-r` flag for video recording to make screen video recording more flexible [#867](https://github.com/appium/appium-xcuitest-driver/pull/867)`
* Add `enforceFreshSimulatorCreation` capability [#859](https://github.com/appium/appium-xcuitest-driver/pull/859)
* More helpful logging
* Add `mjpegScalingFactor` settings that change image scale of mjpeg server to stream screen [#138](https://github.com/appium/WebDriverAgent/pull/138)
* Returns a couple of lines of xcodebuild error message if WDA xcodebuild fails. It helps to understand the cause. [#888](https://github.com/appium/appium-xcuitest-driver/pull/888)
CHANGES IN VERSION 1.11.1 (from 1.11.0)
===================================
Appium 1.11.1 is a patch release
#### General
* Upgrade Appium You.I Engine Driver to 1.1.2
* Fix protocol translation bug (W3C -> MJSONWP) in `/actions` [#302](https://github.com/appium/appium-base-driver/pull/302)
* Fix protocol conversion for `setValue` [#297](https://github.com/appium/appium-base-driver/pull/297)
#### Android (UiAutomator2 only)
* Fix null pointer exception on Session Details retrieval [#247](https://github.com/appium/appium-uiautomator2-server/pull/247)
* Make logging configurable [#242](https://github.com/appium/appium-uiautomator2-server/pull/242)
* Change implementation of the ScrollTo command, so that now it supports different strategies to search for a GUI element (by accessibility id, by class name, and by using the Android uiautomator selectors) [#244](https://github.com/appium/appium-uiautomator2-server/pull/244)
CHANGES IN VERSION 1.11.0 (from 1.10.0)
===================================
Appium 1.11.0 is a minor release
#### iOS
* Fix issues with MJPEG video streaming [#134](https://github.com/appium/WebDriverAgent/pull/134)
* Xcode 10.2 device list support [appium/node-simctl#77](https://github.com/appium/node-simctl/pull/77)
#### Android
* Add `chromedriverDisableBuildCheck` capability which sets the `--disable-build-check` flag on Chromedriver [#474](https://github.com/appium/appium-android-driver/pull/474)
* Add `skipDeviceInitialization` capability which speeds up session startup for cases where Appium doesn't need to wait for the device, push a settings app, or set permissions [#480](https://github.com/appium/appium-android-driver/pull/480)
* Fall back to pressing BACK button if ESC fails to close soft keyboard [#471](https://github.com/appium/appium-android-driver/pull/471)
* Improve XML source building performance by using Jaxen/JDOM2 library on Espresso and UiAutomator2 [#237](https://github.com/appium/appium-uiautomator2-server/pull/237)
* Add setting `normalizeTagNames` which is set to true by default, which normalizes source tag names to workaround parsing problems
* Fix: Include API level 23 for granting of permissions to apps. 23 was being incorrectly excluded previously [#473](https://github.com/appium/appium-android-driver/pull/473)
* Fix: Only call `helpers.ensureDeviceLocale` if language or locale was set, to avoid spending startup time on locale unnecessarily [#477](https://github.com/appium/appium-android-driver/pull/477)
* Fix: Don't regard apps as 'temporary' if the `app` is a relative path [#479](https://github.com/appium/appium-android-driver/pull/479)
* Fix session init. Uninstalls Espresso server if server is older or newer than currently installed Espresso server [#358](https://github.com/appium/appium-espresso-driver/pull/358)
* Fix setting WiFi connection status [#30](https://github.com/appium/io.appium.settings/pull/30)
#### Android (UiAutomator2)
* Add `skipServerInstallation` capability that skips the step of installing the UIAutomator2 server [#266](https://github.com/appium/appium-uiautomator2-driver/pull/266)
* Fix duplicate chrome startup [#266](https://github.com/appium/appium-uiautomator2-driver/pull/266)
* Only perform uiautomation process cleanup if instrumentation crashes [#280](https://github.com/appium/appium-uiautomator2-driver/pull/280)
#### Android (Espresso)
* Add `mobile:` endpoints to run [Espresso contrib methods](http://appium.io/docs/en/commands/mobile-command/): `openDrawer`, `closeDrawer`, `setDate`, `setTime`, `navigateTo`, `scrollToPage` [#324](https://github.com/appium/appium-espresso-driver/pull/324) (warning: See [open issue](https://github.com/appium/appium-espresso-driver/issues/331) from problem with `scrollToPage`)
* Add `mobile: backdoor` method that allows accessing app-internal functionality [#317](https://github.com/appium/appium-espresso-driver/pull/317)
* Add `mobile: flashElement` method [#337](https://github.com/appium/appium-espresso-driver/pull/337)
* Backport [clipboard features](http://appium.io/docs/en/commands/device/clipboard/get-clipboard/) from UiAutomator2 [#361](https://github.com/appium/appium-espresso-driver/pull/361)
* Fix XML memory problems
* Limit traversal depth [#341](https://github.com/appium/appium-espresso-driver/pull/341)
* Fallback to using filesystem if in-memory can't handle XML [#344](https://github.com/appium/appium-espresso-driver/pull/344)
* Limit max length of text values in the XML to 64K
* Fix ID selector by automatically prefixing with current package name [#346](https://github.com/appium/appium-espresso-driver/pull/346)
* Fix crash on calling `/enabled` and `/selected` on elements [#353](https://github.com/appium/appium-espresso-driver/pull/353)
* Add `nativeWebScreenshot` capability to allow screen capture of webviews [#366](https://github.com/appium/appium-espresso-driver/pull/366)
* Fix element screenshot endpoint to support MJSONWP and not just W3C [#370](https://github.com/appium/appium-espresso-driver/pull/370)
CHANGES IN VERSION 1.10.0 (from 1.9.1)
===================================
Appium 1.10.0 is a minor release.
#### General
* Bring Espresso Driver out of beta and into general availability
* Support Xcode 10, discontinue support for Xcode 8
* Bump up minimum Node version to 8 and minimum NPM version to 6
* Improve string extractions for Android and iOS
* Fix synchronization of applications caching [#274](https://github.com/appium/appium-base-driver/pull/274)
* Disable CORS on `createServer` by default.Add `--allow-cors` flag to server flags [#11719](https://github.com/appium/appium/pull/11719)
#### iOS
* Add [mobile:](http://appium.io/docs/en/commands/mobile-command/#ios-xcuitest-only) methods:
* Add biometrics (touchId, faceId) methods that can enroll/unenroll biometric features and send matching/non-matching biometric inputs (iOS Simulator only) [#816](https://github.com/appium/appium-xcuitest-driver/pull/816)
* Add method to clear keychains for an iOS Simulator [#816](https://github.com/appium/appium-xcuitest-driver/pull/816)
* Add [permissions capability](https://github.com/appium/appium-xcuitest-driver#desired-capabilities) that sets service permissions (calendar, siri, etc...) prior to creating a session [#818](https://github.com/appium/appium-xcuitest-driver/pull/818)
* Add possibility to upload files into different container types on Simulator [#770](https://github.com/appium/appium-xcuitest-driver/pull/770)
* Add [reduceMotion](https://github.com/appium/appium-xcuitest-driver/blob/master/README.md#L161) capability [#760](https://github.com/appium/appium-xcuitest-driver/pull/760)
* Improve video recording
* Improved iOS simulator booting procedure
* Add mobile endpoint for running Siri commands [#837](https://github.com/appium/appium-xcuitest-driver/pull/837)
#### Android
* Add [mobile:](http://appium.io/docs/en/commands/mobile-command) command for performing editor actions [#428](https://github.com/appium/appium-android-driver/pull/428)
* Can record videos up to 30 minutes (requires [FFMPEG](https://www.ffmpeg.org/) to be installed) [#399](https://github.com/appium/appium-android-driver/pull/399)
* Add `localeScript` capability to set script in `locale` (https://developer.android.com/reference/java/util/Locale) [#460](https://github.com/appium/appium-android-driver/pull/460)
* Allow `locale` and `language` for real devices under API level 23 [#379](https://github.com/appium/appium-adb/pull/379)
* Improved video recording
* Fix [bug](https://github.com/appium/appium/issues/11619) calling `getRect` in MJSONWP sessions [#240](https://github.com/appium/appium-uiautomator2-driver/pull/240)
* Fix pin entry error on Samsung devices that wasn't correctly locating the "Enter" button [#458](https://github.com/appium/appium-android-driver/pull/458)
* Relax [hidden API policy](https://developer.android.com/about/versions/pie/restrictions-non-sdk-interfaces) for Android P and above
* Support running tests using Android App Bundle [#11601](https://github.com/appium/appium/pull/11601)
#### Android (UiAutomator2)
* Add [mobile:](http://appium.io/docs/en/commands/mobile-command) command for retrieving device information [#221](https://github.com/appium/appium-uiautomator2-driver/pull/211)
* Support `.apks` bundles [#233](https://github.com/appium/appium-uiautomator2-driver/pull/233)
* Fix bug with timeouts calls for W3C sessions [#239](https://github.com/appium/appium-uiautomator2-driver/pull/239)
* Refactored XML source generation and xpath search in order to fix known bugs and to improve the general performance of these operations [#208](https://github.com/appium/appium-uiautomator2-server/pull/208)
* Refactored and fixed issues with W3C Actions [#205](https://github.com/appium/appium-uiautomator2-server/pull/205)
CHANGES IN VERSION 1.9.1 (from 1.9.0)
===================================
+1 -4
View File
@@ -5,10 +5,7 @@
[![devDependency Status](https://david-dm.org/appium/appium/dev-status.svg)](https://david-dm.org/appium/appium#info=devDependencies)
[![Monthly Downloads](https://img.shields.io/npm/dm/appium.svg)](https://npmjs.org/package/appium)
[![Pull Requests](http://issuestats.com/github/appium/appium/badge/pr?style=flat)](http://issuestats.com/github/appium/appium)
[![Issues Closed](http://issuestats.com/github/appium/appium/badge/issue?style=flat)](http://issuestats.com/github/appium/appium)
[![Build Status](https://team-appium.ci.cloudbees.com/job/Appium/badge/icon)](https://team-appium.ci.cloudbees.com/job/Appium/)
[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Fappium%2Fappium.svg?type=shield)](https://app.fossa.io/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Fappium%2Fappium?ref=badge_shield)
[![Greenkeeper badge](https://badges.greenkeeper.io/appium/appium.svg)](https://greenkeeper.io/)
@@ -63,7 +60,7 @@ Similarly, with Google's UiAutomator or Espresso you can only write tests in
Java. Appium opens up the possibility of true cross-platform native app
automation, for mobile and beyond. Finally!
If you're new to Appium, or want a fuller description of what this is all
If you're new to Appium, or want a more comprehensive description of what this is all
about, please read our [Introduction to Appium
Concepts](/docs/en/about-appium/intro.md).
+10 -10
View File
@@ -18,7 +18,7 @@
* brew install --HEAD ideviceinstaller
*/
"use strict";
'use strict';
const spawn = require('child_process').spawn;
const _ = require('lodash');
@@ -39,29 +39,29 @@ const handleKillProcess = function (exitCode) {
};
const startProxy = function () {
console.log('RUNNING:', PROXY_CMD, args.join(' '));
console.log(`RUNNING: ${PROXY_CMD} ${args.join(' ')}`);
proxy = spawn(PROXY_CMD, args);
proxy.stdout.on('data', function (data) {
console.log('stdout: ' + data);
proxy.stdout.on('data', function onStdout (data) {
console.log(`stdout: ${data}`);
});
proxy.stderr.on('data', function (data) {
console.log('stderr: ' + data);
const restartMessage = _(RESTART_ON_MESSAGES).find(function (message) {
proxy.stderr.on('data', function onStderr (data) {
console.log(`stderr: ${data}`);
const restartMessage = _(RESTART_ON_MESSAGES).find(function findMessage (message) {
return ('' + data).indexOf(message) >= 0;
});
if (restartMessage) {
console.log('Detected error message:', restartMessage);
console.log(`Detected error message: ${restartMessage}`);
console.log('Killing proxy!');
proxy.kill('SIGTERM');
process.nextTick(startProxy);
}
});
proxy.on('close', function (code) {
console.log('child process exited with code ' + code);
proxy.on('close', function onClose (code) {
console.log(`Child process exited with code ${code}`);
});
};
+21
View File
@@ -0,0 +1,21 @@
const childProcess = require('child_process');
const _ = require('lodash');
const res = JSON.parse(childProcess.execSync('npm pack --dry-run --json --ignore-scripts', {encoding: 'utf8'}))[0];
// List of files we are testing to make sure they are included in package
const testFiles = [
'npm-shrinkwrap.json', // Check that npm-shrinkwrap.json is being packed
'LICENSE', // Check that license is included
'build/lib/appium.js', // Sanity check that build files are being included by testing just one file
];
// Get list of files in `testFiles` that aren't in the list of packaged fileNames
const missingFiles = _.without(testFiles, ..._.map(res.files, 'path'));
if (!_.isEmpty(missingFiles)) {
throw new Error(`Files [${missingFiles.join(', ')}] are not included in package.json "files". ` +
`Please make sure these files are included before publishing.`);
}
process.exit(0);
+2
View File
@@ -0,0 +1,2 @@
jobs:
- template: templates/bundle-template.yml
+39
View File
@@ -0,0 +1,39 @@
# parameters: # No params yet, but may add later
jobs:
- job: bundle_and_upload_appium_zip
pool:
vmImage: 'macOS 10.13'
variables:
CC: gcc
CXX: g++
steps:
- script: gcc --version
displayName: Print GCC Version
- task: NodeTool@0
inputs:
versionSpec: '11.x'
- script: npm ci || npm install # "npm ci" if shrinkwrap is present
displayName: Install NPM Dependencies
- script: |
pushd node_modules/appium-xcuitest-driver/WebDriverAgent
carthage bootstrap --no-use-binaries
cp Cartfile.resolved Carthage
mkdir -p ./Resources/WebDriverAgent.bundle
popd
displayName: Fully build XCUITestDriver
- script: npm run build
displayName: npm run build
- script: npm prune --production
displayName: Get rid of dev dependencies
- script: npm run zip
displayName: Create the bundle zip
- script: npm install
displayName: Reinstall dev dependencies
- script: npm run upload
env:
GITHUB_TOKEN: $(GITHUB_TOKEN)
displayName: Upload to appium/appium-build-store Github Releases
- script: npx gulp sauce-storage-upload
displayName: Upload to Sauce Storage as sauce-storage:appium.zip
env:
GITHUB_TOKEN: $(GITHUB_TOKEN)
+4 -1
View File
@@ -4,16 +4,19 @@
{{#if path}}
### {{path}}
[//]: # (DO NOT EDIT THIS FILE! This is an auto-generated file.)
{{/if}}
[//]: # (DO NOT EDIT THIS FILE! This is an auto-generated file.)
<div class="api-index">
{{#*inline "commands"}}
{{#each commands}}
<li>{{#if commands}}<a href='{{path}}'>{{name}}</a><ul>{{>commands}}</ul>{{else}}<a href='{{path}}'>{{name}}</a>{{/if}}</li>
{{/each}}
{{/inline}}
[//]: # (DO NOT EDIT THIS FILE! This is an auto-generated file.)
<ul>
{{>commands}}
</ul>
</div>
[//]: # (DO NOT EDIT THIS FILE! This is an auto-generated file.)
@@ -26,7 +26,7 @@ example_usage:
let context = await driver.currentContext();
javascript_wdio:
|
let context = driver.context();
let context = driver.getContext();
ruby:
|
context = current_context
@@ -37,7 +37,7 @@ example_usage:
$context = $driver->context();
csharp:
|
// TODO C# sample
string Context = driver.Context;
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/AppiumDriver.html#getContext--"
@@ -27,7 +27,7 @@ example_usage:
let contexts = await driver.contexts();
javascript_wdio:
|
let contexts = driver.contexts();
let contexts = driver.getContexts();
ruby:
|
context = available_contexts
@@ -39,7 +39,11 @@ example_usage:
$contexts = $driver->contexts();
csharp:
|
// TODO C# sample
List<string> AllContexts = new List<string>();
foreach (var context in (driver.Contexts))
{
AllContexts.Add(context);
}
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/AppiumDriver.html#getContextHandles--"
+12 -4
View File
@@ -34,10 +34,10 @@ example_usage:
await driver.context('NATIVE_APP');
javascript_wdio:
|
let contexts = driver.contexts();
driver.context(contexts[1]);
let contexts = driver.getContexts();
driver.setContext(contexts[1]);
// ...
driver.context('NATIVE_APP');
driver.setContext('NATIVE_APP');
ruby:
|
webview = available_contexts[1]
@@ -58,7 +58,15 @@ example_usage:
$driver->context('NATIVE_APP');
csharp:
|
// TODO C# sample
// Switch to specific webview
List<string> AllContexts = new List<string>();
foreach (var context in (driver.Contexts))
{
AllContexts.Add(context);
}
driver.Context = (AllContexts[1]);
// Switch to NATIVE_APP
driver.Context = ("NATIVE_APP");
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/AppiumDriver.html#context-java.lang.String-"
@@ -14,7 +14,7 @@ example_usage:
let activity = await driver.getCurrentActivity();
javascript_wdio:
|
let activity = driver.currentActivity();
let activity = driver.getCurrentActivity();
ruby:
|
current_activity
@@ -30,7 +30,7 @@ example_usage:
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/android/StartsActivity.html#currentActivity--"
python: "https://github.com/appium/python-client/blob/master/appium/webdriver/webdriver.py#L447"
python: "https://github.com/appium/python-client/blob/master/README.md#retrieving-the-current-running-package-and-activity"
javascript_wdio: "http://webdriver.io/api/mobile/currentActivity.html"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L2519"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#current_activity-instance_method"
@@ -27,7 +27,7 @@ example_usage:
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/android/StartsActivity.html#getCurrentPackage--"
python: "https://github.com/appium/python-client/blob/master/appium/webdriver/webdriver.py#L453"
python: "https://github.com/appium/python-client/blob/master/README.md#retrieving-the-current-running-package-and-activity"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L2526"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#current_package-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#current_package-instance_method"
@@ -34,7 +34,7 @@ example_usage:
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/android/AndroidMobileCommandHelper.html#startActivityCommand-java.lang.String-java.lang.String-java.lang.String-java.lang.String-java.lang.String-java.lang.String-java.lang.String-java.lang.String-boolean-"
python: "https://github.com/appium/python-client/blob/master/appium/webdriver/webdriver.py#L591"
python: "https://github.com/appium/python-client/blob/master/README.md#start-an-arbitrary-activity"
javascript_wdio: "http://webdriver.io/api/mobile/startActivity.html"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L2948"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Android/Device#start_activity-instance_method"
@@ -0,0 +1,86 @@
---
name: Activate App
short_description: Activate the given app onto the device
description:
>
iOS tests with XCUITest can also use the `mobile: activateApp` method. See
detailed [documentation](http://appium.io/docs/en/writing-running-appium/ios/ios-xctest-mobile-apps-management/index.html#mobile-activateapp).
example_usage:
java:
|
driver.activateApp('com.apple.Preferences');
driver.activateApp('io.appium.android.apis');
python:
|
driver.activate_app('com.apple.Preferences')
driver.activate_app('io.appium.android.apis')
javascript_wd:
|
// Supports only `mobile: queryAppState` for iOS, XCUITest
javascript_wdio:
|
// Supports only `mobile: queryAppState` for iOS, XCUITest
ruby:
|
activate_app('com.apple.Preferences')
activate_app('io.appium.android.apis')
ruby_core:
|
@driver.activate_app('com.apple.Preferences')
@driver.activate_app('io.appium.android.apis')
php:
|
// Supports only `mobile: queryAppState` for iOS, XCUITest
csharp:
|
// Supports only `mobile: queryAppState` for iOS, XCUITest
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/InteractsWithApps.html#activateApp-java.lang.String-"
python: "https://github.com/appium/python-client/blob/master/appium/webdriver/extensions/applications.py"
javascript_wdio: "https://webdriver.io/docs/api/appium.html" # TODO wdio documentation link
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js" # TODO wd documentation link
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#activate_app-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#activate_app-instance_method"
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link
# Driver support by platform
driver_support:
ios:
xcuitest: true
uiautomation: false
android:
espresso: true
uiautomator2: true
uiautomator: true
mac:
mac: false # TODO: Verify this
windows:
windows: false # TODO: Verify this
client_support:
java: true
python: true
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
# Information about the HTTP endpoints
endpoint:
url: /wd/hub/session/:session_id/appium/device/activate_app
method: POST
url_parameters:
- name: session_id
description: ID of the session to route the command to
json_parameters:
- name: bundleId or appId
type: string
description: BundleId for iOS. Package name for Android.
# Links to specifications. Should link to at least one specification
specifications:
jsonwp: https://github.com/appium/appium-base-driver/blob/master/lib/protocol/routes.js#L427
@@ -0,0 +1,94 @@
---
name: Get app state
short_description: Get the given app status on the device
description:
>
iOS tests with XCUITest can also use the `mobile: queryAppState` method. See
detailed [documentation](http://appium.io/docs/en/writing-running-appium/ios/ios-xctest-mobile-apps-management/index.html#mobile-queryappstate).
example_usage:
java:
|
driver.queryAppState('com.apple.Preferences');
driver.queryAppState('io.appium.android.apis');
python:
|
driver.query_app_state('com.apple.Preferences')
driver.query_app_state('io.appium.android.apis')
javascript_wd:
|
// Supports only `mobile: queryAppState` for iOS, XCUITest
javascript_wdio:
|
// Supports only `mobile: queryAppState` for iOS, XCUITest
ruby:
|
app_state('com.apple.Preferences')
query_app_state('io.appium.android.apis') # `query_` prefix is also available
ruby_core:
|
@driver.app_state('com.apple.Preferences')
@driver.query_app_state('io.appium.android.apis') # `query_` prefix is also available
php:
|
// Supports only `mobile: queryAppState` for iOS, XCUITest
csharp:
|
// Supports only `mobile: queryAppState` for iOS, XCUITest
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/InteractsWithApps.html#queryAppState-java.lang.String-"
python: "https://github.com/appium/python-client/blob/master/appium/webdriver/extensions/applications.py"
javascript_wdio: "https://webdriver.io/docs/api/appium.html" # TODO wdio documentation link
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js" # TODO wd documentation link
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Base/Driver#app_state-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Base/Driver#app_state-instance_method"
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link
# Driver support by platform
driver_support:
ios:
xcuitest: true
uiautomation: false
android:
espresso: true
uiautomator2: true
uiautomator: true
mac:
mac: false # TODO: Verify this
windows:
windows: false # TODO: Verify this
client_support:
java: true
python: true
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
# Information about the HTTP endpoints
endpoint:
url: /wd/hub/session/:session_id/appium/device/app_state
method: GET
url_parameters:
- name: session_id
description: ID of the session to route the command to
json_parameters:
- name: bundleId or appId
type: string
description: BundleId for iOS. Package name for Android.
response:
- type: number
description: Current the target app status. (Clients wrap the response properly)
`0` is not installed.
`1` is not running.
`2` is running in background or suspended.
`3` is running in background.
`4` is running in foreground.
# Links to specifications. Should link to at least one specification
specifications:
jsonwp: https://github.com/appium/appium-base-driver/blob/master/lib/protocol/routes.js#L462
@@ -51,7 +51,7 @@ example_usage:
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/InteractsWithApps.html#runAppInBackground-java.time.Duration-"
python: "https://github.com/appium/python-client/blob/master/appium/webdriver/webdriver.py#L529"
python: "https://github.com/appium/python-client/blob/master/README.md#backgrounding-an-application"
javascript_wdio: "http://webdriver.io/api/mobile/background.html"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L2841"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#background_app-instance_method"
@@ -13,7 +13,7 @@ example_usage:
await driver.closeApp();
javascript_wdio:
|
driver.close_app();
driver.closeApp();
ruby:
|
close_app
@@ -29,7 +29,7 @@ example_usage:
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/InteractsWithApps.html#closeApp--"
python: "https://github.com/appium/python-client/blob/master/appium/webdriver/webdriver.py#L584"
python: "https://github.com/appium/python-client/blob/master/README.md#closing-and-launching-an-application"
javascript_wdio: "http://webdriver.io/api/mobile/closeApp.html"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L2798"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#close_app-instance_method"
@@ -26,7 +26,7 @@ example_usage:
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/android/AndroidDriver.html#endTestCoverage-java.lang.String-java.lang.String-"
python: "https://github.com/appium/python-client/blob/master/appium/webdriver/webdriver.py#L627"
python: "https://github.com/appium/python-client/blob/master/README.md#end-test-coverage"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L2858"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Android/Device#end_coverage-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Android/Device#end_coverage-instance_method"
@@ -13,7 +13,7 @@ example_usage:
let appStrings = await driver.getAppStrings();
javascript_wdio:
|
let appStrings = driver.getAppStrings("en");
let appStrings = driver.getStrings("en");
ruby:
|
app_strings("en")
@@ -29,7 +29,7 @@ example_usage:
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/HasAppStrings.html#getAppStringMap--"
python: "https://github.com/appium/python-client/blob/master/appium/webdriver/webdriver.py#L357"
python: "https://github.com/appium/python-client/blob/master/README.md#retrieving-application-strings"
javascript_wdio: "http://webdriver.io/api/mobile/getAppStrings.html"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L2916"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#app_strings-instance_method"
@@ -34,7 +34,7 @@ example_usage:
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/InteractsWithApps.html#installApp-java.lang.String-"
python: "https://github.com/appium/python-client/blob/master/appium/webdriver/webdriver.py#L554"
python: "https://github.com/appium/python-client/blob/master/README.md#installing-an-application"
javascript_wdio: "http://webdriver.io/api/mobile/installApp.html"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L2540"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#install_app-instance_method"
@@ -34,7 +34,7 @@ example_usage:
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/InteractsWithApps.html#isAppInstalled-java.lang.String-"
python: "https://github.com/appium/python-client/blob/master/appium/webdriver/webdriver.py#L542"
python: "https://github.com/appium/python-client/blob/master/README.md#checking-if-an-application-is-installed"
javascript_wdio: "http://webdriver.io/api/mobile/isAppInstalled.html"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L2586"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#app_installed%3F-instance_method"
@@ -1,8 +1,11 @@
---
name: Launch an App
short_description: Launch an app on device
name: Launch App
short_description: Launch the app-under-test on the device
description:
>
If the app-under-test (AUT) is closed, or backgrounded, it will launch it.
If the AUT is already open, it will background it and re-launch it.
iOS tests with XCUITest can also use the `mobile: launchApp` method. See
detailed [documentation](/docs/en/writing-running-appium/ios/ios-xctest-mobile-apps-management.md#mobile-launchapp).
@@ -18,7 +21,7 @@ example_usage:
await driver.launchApp();
javascript_wdio:
|
driver.launch();
driver.launchApp();
ruby:
|
launch_app
@@ -34,7 +37,7 @@ example_usage:
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/InteractsWithApps.html#launchApp--"
python: "https://github.com/appium/python-client/blob/master/appium/webdriver/webdriver.py#L578"
python: "https://github.com/appium/python-client/blob/master/README.md#closing-and-launching-an-application"
javascript_wdio: "http://webdriver.io/api/mobile/launch.html"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L2798"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#launch_app-instance_method"
@@ -35,7 +35,7 @@ example_usage:
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/InteractsWithApps.html#removeApp-java.lang.String-"
python: "https://github.com/appium/python-client/blob/master/appium/webdriver/webdriver.py#L566"
python: "https://github.com/appium/python-client/blob/master/README.md#removing-an-application"
javascript_wdio: "http://webdriver.io/api/mobile/removeApp.html"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L2563"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#remove_app-instance_method"
@@ -29,7 +29,7 @@ example_usage:
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/InteractsWithApps.html#resetApp--"
python: "https://github.com/appium/python-client/blob/master/appium/webdriver/webdriver.py#L372"
python: "https://github.com/appium/python-client/blob/master/README.md#resetting-an-application"
javascript_wdio: "http://webdriver.io/api/mobile/reset.html"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L2827"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#reset-instance_method"
@@ -0,0 +1,89 @@
---
name: Terminate App
short_description: Terminate the given app on the device
description:
>
iOS tests with XCUITest can also use the `mobile: terminateApp` method. See
detailed [documentation](http://appium.io/docs/en/writing-running-appium/ios/ios-xctest-mobile-apps-management/index.html#mobile-terminateapp).
example_usage:
java:
|
driver.terminateApp('com.apple.Preferences');
driver.terminateApp('io.appium.android.apis');
python:
|
driver.terminate_app('com.apple.Preferences')
driver.terminate_app('io.appium.android.apis')
javascript_wd:
|
// Supports only `mobile: queryAppState` for iOS, XCUITest
javascript_wdio:
|
// Supports only `mobile: queryAppState` for iOS, XCUITest
ruby:
|
terminate_app('com.apple.Preferences')
terminate_app('io.appium.android.apis')
ruby_core:
|
@driver.terminate_app('com.apple.Preferences')
@driver.terminate_app('io.appium.android.apis')
php:
|
// Supports only `mobile: queryAppState` for iOS, XCUITest
csharp:
|
// Supports only `mobile: queryAppState` for iOS, XCUITest
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/InteractsWithApps.html#terminateApp-java.lang.String-"
python: "https://github.com/appium/python-client/blob/master/appium/webdriver/extensions/applications.py"
javascript_wdio: "https://webdriver.io/docs/api/appium.html" # TODO wdio documentation link
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js" # TODO wd documentation link
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Base/Driver#terminate_app-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Base/Driver#terminate_app-instance_method"
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link
# Driver support by platform
driver_support:
ios:
xcuitest: true
uiautomation: false
android:
espresso: true
uiautomator2: true
uiautomator: true
mac:
mac: false # TODO: Verify this
windows:
windows: false # TODO: Verify this
client_support:
java: true
python: true
ruby: true
php: true
csharp: true
javascript_wd: true
javascript_wdio: true
# Information about the HTTP endpoints
endpoint:
url: /wd/hub/session/:session_id/appium/device/terminate_app
method: POST
url_parameters:
- name: session_id
description: ID of the session to route the command to
json_parameters:
- name: bundleId or appId
type: string
description: BundleId for iOS. Package name for Android.
- name: timeout
type: number
description: (Only Android) Timeout to retry terminate the app.
# Links to specifications. Should link to at least one specification
specifications:
jsonwp: https://github.com/appium/appium-base-driver/blob/master/lib/protocol/routes.js#L445
@@ -21,7 +21,7 @@ example_usage:
await driver.fingerprint(1);
javascript_wdio:
|
await driver.fingerprint(1);
await driver.fingerPrint(1);
ruby:
|
finger_print 1
@@ -37,7 +37,7 @@ example_usage:
client_docs:
java: "https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/WebElement.html#click--"
python: "https://github.com/appium/python-client/blob/07180f7547ffcd13c212de21d027ea0355f9ab96/appium/webdriver/webdriver.py#L1390"
python: "https://github.com/appium/python-client"
javascript_wdio: "https://github.com/appium/appium-android-driver/blob/d16c7161d92ab6f6c9cec3f22218219ac3659716/lib/commands/actions.js#L260"
javascript_wd: "https://github.com/appium/appium-android-driver/blob/d16c7161d92ab6f6c9cec3f22218219ac3659716/lib/commands/actions.js#L260"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/master/Appium/Core/Android/Device#finger_print-instance_method"
@@ -17,9 +17,6 @@ example_usage:
javascript_wd:
|
await driver.getClipboard();
javascript_wdio:
|
await driver.getClipboard();
ruby:
|
get_clipboard
@@ -44,7 +41,7 @@ client_docs:
ruby_core:
- android: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Android/Device#get_clipboard-instance_method"
- ios: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Ios/Device#get_clipboard-instance_method"
php: "https://github.com/appium/php-client/releases/latest-"
php: "https://github.com/appium/php-client/releases/latest"
csharp: "https://github.com/appium/appium" # TODO
# Driver support by platform
@@ -18,9 +18,6 @@ example_usage:
javascript_wd:
|
await driver.setClipboard('happy testing', 'plaintext')
javascript_wdio:
|
await driver.setClipboard('happy testing', 'plaintext')
ruby:
|
set_clipboard content: 'happy testing'
@@ -45,7 +42,7 @@ client_docs:
ruby_core:
- ios: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Ios/Device#set_clipboard-instance_method"
- android: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Android/Device#set_clipboard-instance_method"
php: "https://github.com/appium/php-client/releases/latest-"
php: "https://github.com/appium/php-client/releases/latest"
csharp: "https://github.com/appium/appium" # TODO
# Driver support by platform
@@ -11,6 +11,9 @@ example_usage:
java:
|
driver.setPowerAC(PowerACState.OFF);
python:
|
self.driver.set_power_ac(Power.AC_OFF)
ruby:
|
set_power_ac :on
@@ -20,6 +23,7 @@ example_usage:
client_docs:
java: "https://appium.github.io/java-client/" # TODO: Link
python: "https://github.com/appium/python-client"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/master/Appium/Core/Android/Device/Emulator#set_power_ac-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/master/Appium/Core/Android/Device/Emulator#set_power_ac-instance_method"
@@ -38,7 +42,7 @@ driver_support:
windows: false
client_support:
java: true
python: false
python: true
ruby: true
php: false
csharp: false
@@ -11,6 +11,9 @@ example_usage:
java:
|
driver.setPowerCapacity(100);
python:
|
self.driver.set_power_capacity(50)
ruby:
|
set_power_capacity 50
@@ -20,6 +23,7 @@ example_usage:
client_docs:
java: "https://appium.github.io/java-client/" # TODO: Link
python: "https://github.com/appium/python-client"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/master/Appium/Core/Android/Device/Emulator#set_power_capacity-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/master/Appium/Core/Android/Device/Emulator#set_power_capacity-instance_method"
@@ -38,7 +42,7 @@ driver_support:
windows: false
client_support:
java: true
python: false
python: true
ruby: true
php: false
csharp: false
@@ -30,7 +30,7 @@ example_usage:
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/InteractsWithFiles.html#pullFile-java.lang.String-"
python: "https://github.com/appium/python-client/blob/master/appium/webdriver/webdriver.py#L491"
python: "https://github.com/appium/python-client/blob/master/README.md#retrieve-a-file-from-the-device"
javascript_wdio: "http://webdriver.io/api/mobile/pullFile.html"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L2665"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#pull_file-instance_method"
@@ -30,7 +30,7 @@ example_usage:
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/InteractsWithFiles.html#pullFolder-java.lang.String-"
python: "https://github.com/appium/python-client/blob/master/appium/webdriver/webdriver.py#L503"
python: "https://github.com/appium/python-client"
javascript_wdio: "http://webdriver.io/api/mobile/pullFolder.html"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L2688"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#pull_folder-instance_method"
@@ -31,7 +31,7 @@ example_usage:
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/android/PushesFiles.html#pushFile-java.lang.String-java.io.File-"
python: "https://github.com/appium/python-client/blob/master/appium/webdriver/webdriver.py#L515"
python: "https://github.com/appium/python-client/blob/master/README.md#place-a-file-on-the-device"
javascript_wdio: "http://webdriver.io/api/mobile/pushFile.html"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L2640"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#push_file-instance_method"
@@ -6,6 +6,9 @@ example_usage:
java:
|
boolean isLocked = driver.isDeviceLocked();
python:
|
self.driver.is_locked()
javascript_wd:
|
let isLocked = await driver.isLocked();
@@ -28,6 +31,7 @@ example_usage:
client_docs:
java: "http://appium.github.io/java-client/io/appium/java_client/LocksDevice.html#isDeviceLocked--"
python: "https://github.com/appium/python-client"
javascript_wdio: "http://webdriver.io/api/mobile/isLocked.html"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L2407"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#device_locked%3F-instance_method"
@@ -34,7 +34,7 @@ example_usage:
client_docs:
java: "http://appium.github.io/java-client/io/appium/java_client/LocksDevice.html#lockDevice--"
python: "https://github.com/appium/python-client/blob/master/appium/webdriver/webdriver.py#L643"
python: "https://github.com/appium/python-client/blob/master/README.md#lock-the-device"
javascript_wdio: "http://webdriver.io/api/mobile/lock.html"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L2363"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#lock-instance_method"
@@ -11,7 +11,7 @@ example_usage:
driver.rotateDevice({x: 114, y: 198, duration: 5, radius: 3, rotation: 220, touchCount: 2});
javascript_wdio:
|
driver.rotate(100, 100);
driver.rotateDevice(100, 100);
php:
|
// TODO PHP sample
@@ -31,7 +31,7 @@ example_usage:
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/ios/ShakesDevice.html#shake--"
python: "https://github.com/appium/python-client/blob/master/appium/webdriver/webdriver.py#L655"
python: "https://github.com/appium/python-client/blob/master/README.md#shake-the-device"
javascript_wdio: "http://webdriver.io/api/mobile/shake.html"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L2342"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#shake-instance_method"
@@ -34,6 +34,7 @@ example_usage:
client_docs:
java: "http://appium.github.io/java-client/io/appium/java_client/LocksDevice.html#unlockDevice--"
python: "https://github.com/appium/python-client"
javascript_wdio: "http://webdriver.io/api/mobile/unlock.html"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L2386"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#unlock-instance_method"
@@ -14,7 +14,7 @@ example_usage:
await driver.hideDeviceKeyboard();
javascript_wdio:
|
driver.hideDeviceKeyboard();
driver.hideKeyboard();
ruby:
|
hide_keyboard
@@ -33,9 +33,9 @@ example_usage:
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/HidesKeyboard.html#hideKeyboard--"
python: "https://github.com/appium/python-client/blob/master/appium/webdriver/webdriver.py#L378"
python: "https://github.com/appium/python-client/blob/master/README.md#hiding-the-keyboard-in-ios"
javascript_wdio: "http://webdriver.io/api/mobile/hideDeviceKeyboard.html"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L2609"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L2723"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#hide_keyboard-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#hide_keyboard-instance_method"
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
@@ -6,6 +6,9 @@ example_usage:
java:
|
boolean isKeyboardShown = driver.isKeyboardShown();
python:
|
driver.is_keyboard_shown()
javascript_wd:
|
await driver.isKeyboardShown();
@@ -18,6 +21,7 @@ example_usage:
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/HasOnScreenKeyboard.html#isKeyboardShown--"
python: "https://github.com/appium/python-client"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L2638"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#is_keyboard_shown-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#is_keyboard_shown-instance_method"
@@ -37,7 +41,7 @@ driver_support:
windows: true
client_support:
java: true
python: false
python: true
ruby: true
php: false
csharp: false
@@ -1,6 +1,8 @@
---
name: Long Press Key Code
short_description: Press and hold a particular key code on the device
short_description: Press and hold a particular key code on an Android device
description: See https://developer.android.com/reference/android/view/KeyEvent.html# for reference of available Android key codes
example_usage:
java:
@@ -30,7 +32,7 @@ example_usage:
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/windows/PressesKeyCode.html#longPressKeyCode-int-"
python: "https://github.com/appium/python-client/blob/master/appium/webdriver/webdriver.py#L431"
python: "https://github.com/appium/python-client/blob/master/README.md#long_press"
javascript_wdio: "http://webdriver.io/api/mobile/longPressKeycode.html"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L2478"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#long_press_keycode-instance_method"
@@ -1,6 +1,8 @@
---
name: Press Key Code
short_description: Press a particular key on the device
short_description: Press a particular key on an Android Device
description: See https://developer.android.com/reference/android/view/KeyEvent.html for reference of available Android key code values
example_usage:
java:
@@ -14,7 +16,7 @@ example_usage:
driver.pressKeycode(10);
javascript_wd:
|
await driver.pressKeycode(10);
await driver.pressKeyCode(10);
ruby:
|
press_keycode(10)
@@ -30,7 +32,7 @@ example_usage:
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/windows/PressesKeyCode.html#pressKeyCode-int-"
python: "https://github.com/appium/python-client/blob/master/appium/webdriver/webdriver.py#L415"
python: "https://github.com/appium/python-client/blob/master/README.md#sending-a-key-event-to-an-android-device"
javascript_wdio: "http://webdriver.io/api/mobile/longPressKeycode.html"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L2457"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#press_keycode-instance_method"
@@ -6,9 +6,15 @@ example_usage:
java:
|
driver.makeGsmCall("5551234567", GsmCallActions.CALL);
python:
|
self.driver.make_gsm_call('5551234567', GsmCallActions.CALL)
javascript_wd:
|
await driver.gsmCall('555-123-4567', 'Phone');
javascript_wdio:
|
driver.gsmCall('555-123-4567', 'call');
ruby:
|
gsm_call(phone_number: '5551234567', action: :call)
@@ -24,6 +30,7 @@ example_usage:
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/android/SupportsSpecialEmulatorCommands.html#makeGsmCall-java.lang.String-io.appium.java_client.android.GsmCallActions-"
python: "https://github.com/appium/python-client"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L3183"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/master/Appium/Core/Android/Device/Emulator#gsm_call-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/master/Appium/Core/Android/Device/Emulator#gsm_call-instance_method"
@@ -36,8 +43,8 @@ driver_support:
xcuitest: false
uiautomation: false
android:
uiautomator2: false
espresso: false
uiautomator2: true
espresso: true
uiautomator: true
mac:
mac: false
@@ -45,7 +52,7 @@ driver_support:
windows: false
client_support:
java: true
python: false
python: true
ruby: true
php: false
csharp: false
@@ -6,9 +6,15 @@ example_usage:
java:
|
driver.setGsmSignalStrength(GsmSignalStrength.GOOD);
python:
|
self.driver.set_gsm_signal(GsmSignalStrength.GOOD)
javascript_wd:
|
await driver.gsmSignal(3);
javascript_wdio:
|
driver.gsmSignal(3);
ruby:
|
gsm_signal :good
@@ -24,6 +30,7 @@ example_usage:
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/android/SupportsSpecialEmulatorCommands.html#setGsmSignalStrength-io.appium.java_client.android.GsmSignalStrength-"
python: "https://github.com/appium/python-client"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L3221"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/master/Appium/Core/Android/Device/Emulator#gsm_signal-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/master/Appium/Core/Android/Device/Emulator#gsm_signal-instance_method"
@@ -36,8 +43,8 @@ driver_support:
xcuitest: false
uiautomation: false
android:
uiautomator2: false
espresso: false
uiautomator2: true
espresso: true
uiautomator: true
mac:
mac: false
@@ -45,7 +52,7 @@ driver_support:
windows: false
client_support:
java: true
python: false
python: true
ruby: true
php: false
csharp: false
@@ -60,7 +67,7 @@ endpoint:
- name: session_id
description: ID of the session to route the command to
json_parameters:
- name: signalStrengh
- name: signalStrength
type: string
description: Signal strength in the range [0, 4]
@@ -6,9 +6,15 @@ example_usage:
java:
|
driver.setGsmVoice(GsmVoiceState.HOME);
python:
|
self.driver.set_gsm_voice(GsmVoiceState.HOME)
javascript_wd:
|
await driver.gsmVoice('Voice state');
javascript_wdio:
|
driver.gsmVoice('home');
ruby:
|
gsm_voice :home
@@ -24,6 +30,7 @@ example_usage:
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/android/SupportsSpecialEmulatorCommands.html#setGsmVoice-io.appium.java_client.android.GsmVoiceState-"
python: "https://github.com/appium/python-client"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L3241"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/master/Appium/Core/Android/Device/Emulator#gsm_voice-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/master/Appium/Core/Android/Device/Emulator#gsm_voice-instance_method"
@@ -36,8 +43,8 @@ driver_support:
xcuitest: false
uiautomation: false
android:
uiautomator2: false
espresso: false
uiautomator2: true
espresso: true
uiautomator: true
mac:
mac: false
@@ -45,7 +52,7 @@ driver_support:
windows: false
client_support:
java: true
python: false
python: true
ruby: true
php: false
csharp: false
@@ -0,0 +1,68 @@
---
name: Network speed
short_description: Set network speed (Emulator only)
example_usage:
java:
|
driver.setNetworkSpeed(NetworkSpeed.LTE);
python:
|
self.driver.set_network_speed(NetSpeed.LTE)
javascript_wd:
|
await driver.networkSpeed('Network type');
javascript_wdio:
|
driver.networkSpeed('lte');
ruby:
|
set_network_speed :lte
ruby_core:
|
@driver.set_network_speed :lte
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/android/SupportsSpecialEmulatorCommands.html#setNetworkSpeed-io.appium.java_client.android.NetworkSpeed-"
python: "https://github.com/appium/python-client"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L3411"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/master/Appium/Core/Android/Device/Emulator#set_network_speed-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/master/Appium/Core/Android/Device/Emulator#set_network_speed-instance_method"
# Driver support by platform
driver_support:
ios:
xcuitest: false
uiautomation: false
android:
uiautomator2: true
espresso: true
uiautomator: true
mac:
mac: false
windows:
windows: false
client_support:
java: true
python: true
ruby: true
php: false
csharp: false
javascript_wd: true
javascript_wdio: true
# Information about the HTTP endpoints
endpoint:
url: /session/:session_id/appium/device/network_speed
method: POST
url_parameters:
- name: session_id
description: ID of the session to route the command to
json_parameters:
- name: netspeed
type: string
description: Network type - 'full','gsm', 'edge', 'hscsd', 'gprs', 'umts', 'hsdpa', 'lte', 'evdo'
# Links to specifications. Should link to at least one specification
specifications:
jsonwp: https://github.com/appium/appium-base-driver/blob/master/lib/protocol/routes.js#L346
@@ -6,9 +6,15 @@ example_usage:
java:
|
driver.sendSMS("555-123-4567", "Hey lol");
python:
|
self.driver.send_sms('555-123-4567', 'Hey lol')
javascript_wd:
|
await driver.sendSms('555-123-4567', 'Hey lol');
javascript_wdio:
|
driver.sendSms('555-123-4567', 'Hey lol');
ruby:
|
send_sms(phone_number: '555-123-4567', message: 'Hey lol')
@@ -24,6 +30,7 @@ example_usage:
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/android/SupportsSpecialEmulatorCommands.html#sendSMS-java.lang.String-java.lang.String-"
python: "https://github.com/appium/python-client"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L3183"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/master/Appium/Core/Android/Device/Emulator#send_sms-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/master/Appium/Core/Android/Device/Emulator#send_sms-instance_method"
@@ -45,7 +52,7 @@ driver_support:
windows: false
client_support:
java: true
python: false
python: true
ruby: true
php: false
csharp: false
@@ -1,6 +1,12 @@
---
name: Toggle Data
short_description: Switch the state of data service
description:
|
Switch the state of data service.
(For Android) This API does not work for Android API level 21+
because it requires system or carrier privileged permission, and Android <= 21 does not support granting permissions.
example_usage:
java:
@@ -30,7 +30,7 @@ example_usage:
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/android/AndroidDriver.html#toggleLocationServices--"
python: "https://github.com/appium/python-client/blob/master/appium/webdriver/webdriver.py#L774"
python: "https://github.com/appium/python-client"
javascript_wdio: "http://webdriver.io/api/mobile/toggleLocationServices.html"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L2758"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/master/Appium/Core/Device#toggle_location_services-instance_method"
@@ -6,6 +6,9 @@ example_usage:
java:
|
driver.toggleWifi();
python:
|
driver.toggle_wifi()
javascript_wd:
|
await driver.toggleWiFi();
@@ -27,6 +30,7 @@ example_usage:
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/android/SupportsNetworkStateManagement.html#toggleWifi--"
python: "https://github.com/appium/python-client"
javascript_wdio: "http://webdriver.io/api/mobile/toggleWiFi.html"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L2738"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/master/Appium/Core/Device#toggle_wifi-instance_method"
@@ -49,7 +53,7 @@ driver_support:
windows: false
client_support:
java: true
python: false
python: true
ruby: true
php: true
csharp: true
@@ -6,9 +6,15 @@ example_usage:
java:
|
List<List<Object>> performanceData = driver.getPerformanceData("my.app.package", "cpuinfo", 5);
python:
|
self.driver.get_performance_data('my.app.package', 'cpuinfo', 5)
javascript_wd:
|
await driver.getPerformanceData('my.app.package', 'cpuinfo', 5);
javascript_wdio:
|
driver.getPerformanceData('my.app.package', 'cpuinfo', 5);
ruby:
|
get_performance_data package_name: 'io.appium.android.apis', data_type: 'cpuinfo', data_read_timeout: 10
@@ -25,6 +31,7 @@ example_usage:
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/android/HasSupportedPerformanceDataType.html#getSupportedPerformanceDataTypes--"
python: "https://github.com/appium/python-client"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L3412"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Android/Device#get_performance_data-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Android/Device#get_performance_data-instance_method"
@@ -62,13 +69,13 @@ endpoint:
- name: session_id
description: ID of the session to route the command to
json_parameters:
- name: package_name
- name: packageName
type: string
description: The package name of the application
- name: data_type
- name: dataType
type: string
description: The type of system state which wants to read. It should be one of the supported performance data types.
- name: data_read_timeout
- name: dataReadTimeout
type: number
description: The number of attempts to read (optional)
response:
@@ -6,9 +6,15 @@ example_usage:
java:
|
List<String> performanceTypes = driver.getSupportedPerformanceDataTypes();
python:
|
self.driver.get_performance_data_types()
javascript_wd:
|
await driver.getSupportedPerformanceDataTypes();
javascript_wdio:
|
driver.getPerformanceDataTypes();
ruby:
|
get_performance_data_types
@@ -24,6 +30,7 @@ example_usage:
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/android/HasSupportedPerformanceDataType.html#getSupportedPerformanceDataTypes--"
python: "https://github.com/appium/python-client"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L3398"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Android/Device#get_performance_data_types-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Android/Device#get_performance_data_types-instance_method"
@@ -10,6 +10,9 @@ example_usage:
javascript_wd:
|
await driver.startRecordingScreen();
javascript_wdio:
|
driver.startRecordingScreen();
ruby:
|
start_recording_screen
@@ -28,10 +31,15 @@ example_usage:
// TODO PHP sample
csharp:
|
// TODO C# sample
driver.StartRecordingScreen(
AndroidStartScreenRecordingOptions.GetAndroidStartScreenRecordingOptions()
.WithTimeLimit(TimeSpan.FromSeconds(10))
.WithBitRate(500000)
.WithVideoSize("720x1280"));
client_docs:
java: "https://static.javadoc.io/io.appium/java-client/6.1.0/io/appium/java_client/screenrecording/CanRecordScreen.html#startRecordingScreen-T-"
python: "https://github.com/appium/python-client"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L3412"
ruby:
- android: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Android/Device#start_recording_screen-instance_method"
@@ -73,58 +81,61 @@ endpoint:
- name: session_id
description: ID of the session to route the command to
json_parameters:
- name: remotePath
- name: options
type: object
description: The following parameters of the action
- name: options.remotePath
type: string
description: The path to the remote location, where the resulting video should be uploaded.
The following protocols are supported http/https, ftp.
Null or empty string value (the default setting) means the content of resulting
file should be encoded as Base64 and passed as the endpount response value.
file should be encoded as Base64 and passed as the endpoint response value.
An exception will be thrown if the generated media file is too big to
fit into the available process memory.
This option only has an effect if there is screen recording process in progreess
This option only has an effect if there is screen recording process in progress
and `forceRestart` parameter is not set to `true`.
- name: username
- name: options.username
type: string
description: The name of the user for the remote authentication.
- name: password
- name: options.password
type: string
description: The password for the remote authentication.
- name: method
- name: options.method
type: string
description: The http multipart upload method name. The 'PUT' one is used by default.
- name: forceRestart
- name: options.forceRestart
type: boolean
description: Whether to try to catch and upload/return the currently running screen recording
(`false`, the default setting on server) or ignore the result of it
and start a new recording immediately (`true`).
- name: timeLimit
- name: options.timeLimit
type: string
description: Recording time. 180 seconds is by default.
- name: videoType
- name: options.videoType
type: string
description: (iOS Only) The format of the screen capture to be recorded.
Available formats "h264", "mp4" or "fmp4". Default is "mp4".
Only works for Simulator.
- name: videoQuality
- name: options.videoQuality
type: string
description: (iOS Only) The video encoding quality (low, medium, high, photo - defaults to medium).
- name: videoFps
- name: options.videoFps
type: string
description: (iOS Only) The Frames Per Second rate of the recorded video.
Change this value if the resulting video is too slow or too fast. Defaults to 10.
This can decrease the resulting file size.
- name: bitRate
- name: options.bitRate
type: string
description: (iOS Only) The video bit rate for the video, in megabits per second.
4 Mbp/s(4000000) is by default for Android API level below 27. 20 Mb/s(20000000) for API level 27 and above.
- name: videoSize
- name: options.videoSize
type: string
description: (Android Only) The format is widthxheight.
The default value is the device's native display resolution (if supported),
1280x720 if not. For best results,
use a size supported by your device's Advanced Video Coding (AVC) encoder.
For example, "1280x720"
- name: bugReport
- name: options.bugReport
type: string
description: (Android Only) Set it to `true` in order to display additional information on the video overlay,
such as a timestamp, that is helpful in videos captured to illustrate bugs.
@@ -10,6 +10,9 @@ example_usage:
javascript_wd:
|
await driver.stopRecordingScreen();
javascript_wdio:
|
driver.stopRecordingScreen();
ruby:
|
stop_recording_screen
@@ -23,13 +26,14 @@ example_usage:
self.driver.stop_recording_screen()
php:
|
// TODO PHP sample
driver.StopRecordingScreen();
csharp:
|
// TODO C# sample
client_docs:
java: "https://static.javadoc.io/io.appium/java-client/6.1.0/io/appium/java_client/screenrecording/CanRecordScreen.html#stopRecordingScreen--"
python: "https://github.com/appium/python-client"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L3398"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#stop_recording_screen-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#stop_recording_screen-instance_method"
@@ -21,7 +21,7 @@ example_usage:
await driver.toggleTouchIdEnrollment();
javascript_wdio:
|
driver.toggleTouchIdEnrollment(true);
driver.toggleEnrollTouchId(true);
ruby:
|
toggle_touch_id_enrollment
@@ -37,7 +37,7 @@ example_usage:
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/ios/PerformsTouchID.html#performTouchID-boolean-"
python: "https://github.com/appium/python-client/blob/master/appium/webdriver/webdriver.py#L670"
python: "https://github.com/appium/python-client"
javascript_wdio: "http://webdriver.io/api/mobile/toggleTouchIdEnrollment.html"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L3150"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Ios/Device#toggle_touch_id_enrollment-instance_method"
@@ -49,7 +49,7 @@ example_usage:
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/ios/PerformsTouchID.html#performTouchID-boolean-"
python: "https://github.com/appium/python-client/blob/master/appium/webdriver/webdriver.py#L661"
python: "https://github.com/appium/python-client"
javascript_wdio: "http://webdriver.io/api/mobile/touchId.html"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L3133"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Ios/Device#touch_id-instance_method"
@@ -0,0 +1,64 @@
---
name: Get Display Density
short_description: Retrieve display density(dpi) of the Android device
example_usage:
java:
|
driver.getDeviceDensity();
python:
|
self.driver.get_device_density()
javascript_wdio:
|
driver.getDisplayDensity();
ruby:
|
get_device_density
ruby_core:
|
@driver.get_device_density
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/android/AndroidMobileCommandHelper.html#getDisplayDensityCommand--"
python: "https://github.com/appium/python-client"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Android/Device#get_display_density-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Android/Device#get_display_density-instance_method"
javascript_wdio: "https://webdriver.io/docs/api/appium.html#getdisplaydensity"
# Driver support by platform
driver_support:
ios:
xcuitest: false
uiautomation: false
android:
espresso: true
uiautomator2: true
uiautomator: true
mac:
mac: false
windows:
windows: false
client_support:
java: true
python: true
ruby: true
php: false
csharp: false
javascript_wd: false
javascript_wdio: true
# Information about the HTTP endpoints
endpoint:
url: /session/:session_id/appium/device/display_density
method: GET
url_parameters:
- name: session_id
description: ID of the session to route the command to
response:
- type: number
description: The device density(dpi) of the Android device
# Links to specifications. Should link to at least one specification
specifications:
jsonwp: https://github.com/appium/appium-base-driver/blob/master/lib/protocol/routes.js#L530
@@ -30,7 +30,7 @@ example_usage:
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/android/AndroidDriver.html#openNotifications--"
python: "https://github.com/appium/python-client/blob/master/appium/webdriver/webdriver.py#L676"
python: "https://github.com/appium/python-client"
javascript_wdio: "http://webdriver.io/api/mobile/openNotifications.html"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L3004"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#open_notifications-instance_method"
@@ -44,7 +44,7 @@ driver_support:
xcuitest: false
uiautomation: false
android:
espresso: true
espresso: false
uiautomator2: true
uiautomator: true
mac:
@@ -6,6 +6,12 @@ example_usage:
java:
|
Map<String, String> systemBars = driver.getSystemBars();
python:
|
self.driver.get_system_bars()
javascript_wdio:
|
driver.getSystemBars();
ruby:
|
get_system_bars
@@ -21,6 +27,7 @@ example_usage:
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/android/HasAndroidDeviceDetails.html#getSystemBars--"
python: "https://github.com/appium/python-client"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#get_system_bars-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#get_system_bars-instance_method"
php: "https://github.com/appium/php-client/" # TODO
@@ -41,12 +48,12 @@ driver_support:
windows: false
client_support:
java: true
python: false
python: true
ruby: true
php: false
csharp: false
javascript_wd: false
javascript_wdio: false
javascript_wdio: true
# Information about the HTTP endpoints
endpoint:
@@ -8,7 +8,10 @@ example_usage:
String time = driver.getDeviceTime();
python:
|
time = self.driver.device_time()
time = self.driver.device_time
time = self.driver.get_device_time()
time = self.driver.get_device_time("YYYY-MM-DD")
javascript_wdio:
|
let time = driver.getDeviceTime();
@@ -30,7 +33,7 @@ example_usage:
client_docs:
java: "https://appium.github.io/java-client/io/appium/java_client/HasDeviceTime.html#getDeviceTime--"
python: "https://github.com/appium/python-client/blob/master/appium/webdriver/webdriver.py#L798"
python: "https://github.com/appium/python-client"
javascript_wdio: "http://webdriver.io/api/mobile/getDeviceTime.html"
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L3119"
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#device_time-instance_method"
@@ -15,7 +15,7 @@ example_usage:
await element.clear();
javascript_wdio:
|
driver.clearElement("~SomeAccessibilityId");
$("~SomeAccessibilityId").clearValue();
ruby:
|
find_element(:accessibility_id, "SomeAccessibilityID").clear
@@ -21,7 +21,7 @@ example_usage:
await element.click();
javascript_wdio:
|
driver.click('#SomeId');
$('#SomeId').click();
ruby:
|
find_element(:accessibility_id, 'SomeId').click
@@ -21,7 +21,7 @@ example_usage:
await element.type("Hello world!")
javascript_wdio:
|
driver.setValue("~SomeAccessibilityId");
$("~SomeAccessibilityId").addValue("Enter");
ruby:
|
find_element(:accessibility_id, "SomeAccessibilityID").send_keys("Hello World!")
@@ -71,7 +71,7 @@ client_support:
# Information about the HTTP endpoints
endpoint:
url: /wd/hub/session/:session_id/element/value
url: /wd/hub/session/:session_id/element/:element_id/value
method: 'POST'
url_parameters:
- name: session_id
@@ -16,7 +16,7 @@ example_usage:
let tagName = await element.getAttribute("content-desc");
javascript_wdio:
|
let attribute = driver.getAttribute("~SomeAccessibilityId", "content-desc");
let attribute = $("~SomeAccessibilityId").getAttribute("content-desc");
ruby:
|
find_element(:accessibility_id, 'SomeAccessibilityID').attribute("content-desc")
@@ -22,7 +22,7 @@ example_usage:
let cssProperty = await element.getComputedCss();
javascript_wdio:
|
let cssProperty = driver.getCssProperty("~SomeId", "style");
let cssProperty = $("~SomeId").getCSSProperty("style");
ruby:
|
find_element(:id, 'SomeId').css_value
@@ -14,10 +14,9 @@ example_usage:
let element = await driver.elementByAccessibilityId("SomeAccessibilityID");
let isDisplayed = await element.isDisplayed();
# Note that elementIdDisplayed is not a typo in this document, it's a WDIO typo
javascript_wdio:
|
let isDisplayed = driver.elementIdDisplayed("~SomeAccessibilityId");
let isDisplayed = $("~SomeAccessibilityId").isDisplayed();
ruby:
|
find_element(:accessibility_id, "SomeAccessibilityID").displayed?
@@ -15,7 +15,7 @@ example_usage:
let isEnabled = await element.isEnabled();
javascript_wdio:
|
let isEnabled = driver.isEnabled("~SomeAccessibilityId");
let isEnabled = $("~SomeAccessibilityId").isEnabled();
ruby:
|
find_element(:accessibility_id, "SomeAccessibilityID").enabled?
@@ -7,6 +7,10 @@ example_usage:
|
let element = await driver.elementByAccessibilityId("SomeAccessibilityID");
let location = await element.getLocationInView();
python:
|
element = self.driver.find_element_by_accessibility_id('SomeAccessibilityID')
element.location_in_view
javascript_wdio:
|
let location = driver.getLocationInView("~SomeAccessibilityId");
@@ -18,7 +18,7 @@ example_usage:
let location = await element.getLocation();
javascript_wdio:
|
let location = driver.getLocation("~SomeAccessibilityId");
let location = $("~SomeAccessibilityId").getLocation();
ruby:
|
find_element(:accessibility_id, 'SomeAccessibilityID').location
@@ -16,7 +16,7 @@ example_usage:
let tagName = await element.getTagName();
javascript_wdio:
|
let tagName = driver.getTagName("~SomeAccessibilityId");
let tagName = $("~SomeAccessibilityId").getTagName();
ruby:
|
find_element(:accessibility_id, 'SomeAccessibilityID').tag_name
@@ -7,13 +7,17 @@ example_usage:
|
List<MobileElement> element = (MobileElement) driver.findElementByAccessibilityId("SomeAccessibilityID");
Rectangle rect = element.getRect();
python:
|
element = self.driver.find_element_by_accessibility_id('SomeAccessibilityID')
element.rect
javascript_wd:
|
let element = await driver.elementByAccessibilityId("SomeAccessibilityID");
let rect = await element.getRect();
javascript_wdio:
|
let rect = driver.elementIdRect("~SomeAccessibilityId");
let rect = driver.getElementRect("~SomeAccessibilityId");
ruby:
|
element = find_element :accessibility_id, "SomeAccessibilityID"
@@ -79,7 +83,7 @@ endpoint:
- name: height
type: number
description: Height of the bounding rectangle
- name: weight
- name: width
type: number
description: Width of the bounding rectangle
# Links to specifications. Should link to at least one specification
@@ -11,7 +11,7 @@ example_usage:
// TODO Java sample
python:
|
// TODO: Python example
self.driver.set_value('some')
javascript_wd:
|
// TODO JavaScript sample
@@ -39,15 +39,15 @@ client_docs:
javascript_wdio: "http://webdriver.io/api/property/getText.html" # TODO JAvaScript documentation link
javascript_wd: "https://github.com/admc/wd/blob/master/lib/commands.js#L1832" # TODO JAvaScript documentation link
ruby: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#replace_value-instance_method"
ruby/core: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#replace_value-instance_method"
ruby_core: "https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device#replace_value-instance_method"
php: "https://github.com/appium/php-client/" # TODO PHP documentation link
csharp: "https://github.com/appium/appium-dotnet-driver/" # TODO Dotnet documentation link
# Driver support by platform
driver_support:
ios:
xcuitest: true
uiautomation: true
xcuitest: false
uiautomation: false
android:
espresso: true
uiautomator2: true
@@ -15,7 +15,7 @@ example_usage:
let isSelected = await element.isSelected();
javascript_wdio:
|
let isSelected = driver.isSelected("~SomeAccessibilityId");
let isSelected = $("~SomeAccessibilityId").isSelected();
ruby:
|
find_element(:accessibility_id, "SomeAccessibilityID").selected?
@@ -18,7 +18,7 @@ example_usage:
let size = await element.getSize();
javascript_wdio:
|
let size = driver.getElementSize("~SomeAccessibilityId");
let size = $("~SomeAccessibilityId").getSize();
ruby:
|
find_element(:accessibility_id, 'SomeAccessibilityID').size
@@ -9,7 +9,7 @@ example_usage:
java:
|
MobileElement element = (MobileElement) driver.findElementByClassName("SomeClassName");
let elText = element.getText();
String elText = element.getText();
python:
|
el = self.driver.find_element_by_accessibility_id('SomeAccessibilityID')
@@ -20,7 +20,7 @@ example_usage:
await element.text();
javascript_wdio:
|
driver.getText("~SomeAccessibilityId");
$("~SomeAccessibilityId").getText();
ruby:
|
element = find_element :accessibility_id, "SomeAccessibilityID"
@@ -19,7 +19,7 @@ example_usage:
let elementTwo = await driver.element("id", "SomeID");
javascript_wdio:
|
driver.element("~SomeAccessibilityId");
$("~SomeAccessibilityId");
ruby:
|
find_element(:accessibility_id, 'SomeAccessibilityID')
@@ -21,6 +21,8 @@ selector_strategies:
description: Use the UI Automator API, in particular the [UiSelector](https://developer.android.com/reference/android/support/test/uiautomator/UiSelector.html) class to locate elements. In Appium you send the Java code, as a string, to the server, which executes it in the application’s environment, returning the element or elements.
- name: Android View Tag (Espresso only)
description: Locate an element by its [view tag](https://developer.android.com/reference/android/support/test/espresso/matcher/ViewMatchers.html#withTagValue(org.hamcrest.Matcher%3Cjava.lang.Object%3E))
- name: Android Data Matcher (Espresso only)
description: Locate an element using [Espresso DataMatcher](https://developer.android.com/reference/android/support/test/espresso/Espresso#ondata)
- name: IOS UIAutomation
description: When automating an iOS application, Apple’s [Instruments](/docs/en/drivers/ios-uiautomation.md) framework can be used to find elements
@@ -38,7 +40,7 @@ example_usage:
let elementsTwo = await driver.elements("id", "SomeID");
javascript_wdio:
|
driver.elements("~SomeAccessibilityId");
$$("~SomeAccessibilityId");
ruby:
|
find_elements(:accessibility_id, "~SomeAccessibilityID")
@@ -14,7 +14,7 @@ example_usage:
let element = await driver.active();
javascript_wdio:
|
driver.elementActive();
driver.getActiveElement();
ruby:
|
switch_to.active_element
@@ -20,7 +20,7 @@ example_usage:
await element.submit();
javascript_wdio:
|
driver.submitForm("~SomeAccessibilityId");
$("~SomeAccessibilityId").click();
ruby:
|
element = find_element :class_name, "someClass"
+2 -2
View File
@@ -31,7 +31,7 @@ example_usage:
// PHP Code here
csharp:
|
// CSharp Code here
driver.FindElementById("elementId").Click();
client_docs:
java:
@@ -43,7 +43,7 @@ client_docs:
javascript_wd: "https://github.com/admc/wd/releases"
ruby: "https://github.com/appium/ruby_lib/releases/latest"
ruby_core: "https://github.com/appium/ruby_lib/releases/latest"
php: "https://github.com/appium/php-client/releases/latest-"
php: "https://github.com/appium/php-client/releases/latest"
csharp: "https://github.com/appium/appium" # TODO
# Driver support by platform
+16 -15
View File
@@ -12,20 +12,21 @@ description:
example_usage:
java:
WebElement source = (MobileElement) driver.findElementsByAccessibilityId("SomeAccessibilityID");
WebElement target = (MobileElement) driver.findElementsByAccessibilityId("SomeOtherAccessibilityID");
|
WebElement source = (MobileElement) driver.findElementsByAccessibilityId("SomeAccessibilityID");
WebElement target = (MobileElement) driver.findElementsByAccessibilityId("SomeOtherAccessibilityID");
Point source = dragMe.getCenter();
Point target = driver.findElementByAccessibilityId("dropzone").getCenter();
PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger");
Sequence dragNDrop = new Sequence(finger, 1);
dragNDrop.addAction(finger.createPointerMove(Duration.ofMillis(0),
PointerInput.Origin.viewport(), source.x, source.y));
dragNDrop.addAction(finger.createPointerDown(PointerInput.MouseButton.LEFT.asArg()));
dragNDrop.addAction(finger.createPointerMove(Duration.ofMillis(700),
PointerInput.Origin.viewport(),target.x, target.y));
dragNDrop.addAction(finger.createPointerUp(PointerInput.MouseButton.LEFT.asArg()));
driver.perform(Arrays.asList(dragNDrop));
Point source = dragMe.getCenter();
Point target = driver.findElementByAccessibilityId("dropzone").getCenter();
PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger");
Sequence dragNDrop = new Sequence(finger, 1);
dragNDrop.addAction(finger.createPointerMove(Duration.ofMillis(0),
PointerInput.Origin.viewport(), source.x, source.y));
dragNDrop.addAction(finger.createPointerDown(PointerInput.MouseButton.LEFT.asArg()));
dragNDrop.addAction(finger.createPointerMove(Duration.ofMillis(700),
PointerInput.Origin.viewport(),target.x, target.y));
dragNDrop.addAction(finger.createPointerUp(PointerInput.MouseButton.LEFT.asArg()));
driver.perform(Arrays.asList(dragNDrop));
python:
|
element = driver.find_element_by_accessibility_id("elId")
@@ -57,7 +58,7 @@ example_usage:
|
// Example: expressing a 1-second pinch-and-zoom
// with a 500ms wait after the fingers first touch:
browser.actions([{
browser.performActions([{
"type": "pointer",
"id": "finger1",
"parameters": {"pointerType": "touch"},
@@ -232,4 +233,4 @@ endpoint:
# Links to specifications. Should link to at least one specification
specifications:
w3c: https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/interactions/Actions.html
w3c: https://www.w3.org/TR/webdriver/#actions
@@ -22,8 +22,7 @@ example_usage:
javascript_wdio:
|
driver.moveTo(element)
.click();
$("~SomeId").click();
ruby:
|
action.move_to(element).click.perform
@@ -35,7 +34,12 @@ example_usage:
// TODO PHP sample
csharp:
|
// TODO C# sample
Actions action = new Actions(driver);
action.MoveToElement(element);
action.Click();
action.Perform();
client_docs:
java: "https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/interactions/Actions.html#click--"
@@ -22,8 +22,7 @@ example_usage:
javascript_wdio:
|
driver.moveTo(element)
.doubleClick();
$("~SomeId").doubleClick();
ruby:
|
action.move_to(element).double_click.perform
@@ -72,7 +71,7 @@ client_support:
# Information about the HTTP endpoints
endpoint:
url: /session/:session_id/doubledoubleClick
url: /session/:session_id/doubleClick
method: POST
url_parameters:
- name: session_id
@@ -23,7 +23,7 @@ example_usage:
javascript_wdio:
|
driver.moveTo(element, 10, 10);
$(element).moveTo(10, 10);
ruby:
|
mouse.move_to(element)
@@ -37,7 +37,11 @@ example_usage:
// TODO PHP sample
csharp:
|
// TODO C# sample
Actions action = new Actions(driver);
action.MoveToElement(element, 10, 10);
action.Perform();
client_docs:
java: "https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/interactions/Actions.html#moveToElement-org.openqa.selenium.WebElement-"
@@ -24,6 +24,8 @@ example_usage:
let action = new wd.TouchAction();
action.tap({el: element});
await action.perform();
javascript_wdio:
driver.touchDoubleClick(element);
ruby:
|
touch_action.double_tap(element).perform
@@ -20,7 +20,7 @@ example_usage:
await element.flick(1, 10, 10);
javascript_wdio:
|
driver.touchFlick('<ELEMENT_ID>', 1, 10, 10);
driver.touchFlick(10, 10, element, 1);
ruby:
|
touch_action.flick(element, 1, 10, 10).perform
@@ -50,7 +50,6 @@ driver_support:
xcuitest: true
uiautomation: true
android:
uiautomator2: false
espresso: false
uiautomator2: true
uiautomator: true
@@ -1,5 +1,5 @@
---
name: Move
name: Move To
short_description: Finger move on the screen
description:
>
@@ -9,7 +9,7 @@ example_usage:
|
TouchActions action = new TouchActions(driver);
action.down(10, 10);
action.move(50, 50);
action.moveTo(50, 50);
action.perform();
python:
|
@@ -17,12 +17,13 @@ example_usage:
# ...
actions = TouchAction(driver)
actions.tap_and_hold(element)
actions.move(50, 50)
actions.move_to(element, 50, 50)
actions.perform()
javascript_wd:
|
let action = new wd.TouchAction();
let action = new wd.TouchAction(driver);
action.press({x: 10, y: 10})
.wait(1000)
.moveTo({x: 50, y: 50})
.release();
await action.perform();
@@ -35,10 +36,10 @@ example_usage:
]);
ruby:
|
touch_action.down(element).move().perform
touch_action.down(element).move_to().perform
ruby_core:
|
@driver.touch_action.down(element).move().perform
@driver.touch_action.down(element).move_to().perform
php:
|
// TODO PHP sample
@@ -105,7 +105,7 @@ endpoint:
json_parameters:
- name: action
type: string
description: The type of action to perform (moveTo|release|press|tap|wait)
description: The type of action to perform (moveTo\|release\|press\|tap\|wait)
- name: options
type: object
description: The parameters of the action
@@ -28,10 +28,10 @@ example_usage:
});
ruby:
|
touch_action.scroll(element, 10, 100).perform
touch_actions.scroll(element, 10, 100).perform
ruby_core:
|
@driver.touch_action.scroll(element, 10, 100).perform
@driver.touch_actions.scroll(element, 10, 100).perform
php:
|
// TODO PHP sample
@@ -98,7 +98,7 @@ endpoint:
json_parameters:
- name: action
type: string
description: The type of action to perform (moveTo|release|press|tap|wait)
description: The type of action to perform (moveTo\|release\|press\|tap\|wait)
- name: options
type: object
description: The parameters of the action
+27 -10
View File
@@ -22,7 +22,7 @@
| ------- | ----------- | -------- | ---------------- |
| mobile:startPerfRecord | Starts performance profiling for the device under test | <none> | |
| mobile:stopPerfRecord | Stops performance profiling for the device under test | <none> | |
| mobile:startLogsBroadcast | Starts iOS system logs broadcast websocket on the same host and port where Appium server is running at `/ws/session/:sessionId:/appium/syslog` endpoint. | <none> | |
| mobile:startLogsBroadcast | Starts iOS system logs broadcast websocket on the same host and port where Appium server is running at `/ws/session/:sessionId:/appium/device/syslog` endpoint. | <none> | |
| mobile:stopLogsBroadcast | Stops the iOS system logs broadcasting websocket server started by `mobile:startLogsBroadcast` | <none> | |
| mobile:swipe | refer to [Automating Mobile Gestures For iOS With WebDriverAgent/XCTest Backend](/docs/en/writing-running-appium/ios/ios-xctest-mobile-gestures.md#mobile-swipe) | | |
| mobile:scroll | refer to [Automating Mobile Gestures For iOS With WebDriverAgent/XCTest Backend](/docs/en/writing-running-appium/ios/ios-xctest-mobile-gestures.md#mobile-scroll) | | |
@@ -46,35 +46,52 @@
| mobile:installCertificate | refer to [IOS Pasteboard Guide](/docs/en/writing-running-appium/ios/ios-xctest-install-certificate.md) | | |
| mobile:getContexts | Retrieve available contexts, along with the url and title associated with each webview (see [get contexts](/docs/en/commands/context/get-contexts.md)) | | |
| mobile:batteryInfo | Reads the battery information from the device under test | <none> | <none> |
| mobile:pressButton | Press a physical button. The supported button name is is _home_. _volumeup_ and _volumedown_ are available for real devices | `{name}` | `{name: "home"}` |
| mobile:pressButton | Press a physical button. The available button options are: _home_, _volumeup_ and _volumedown_. Real devices support all three buttons whereas simulator only supports _home_. | `{name}` | `{name: "home"}` |
| mobile:enrollBiometric | Enroll (or unenroll) an iOS Simulator to use [biometrics](https://developer.apple.com/design/human-interface-guidelines/ios/user-interaction/authentication/#face-id-and-touch-id) | `{isEnabled}` | `{isEnabled: true}` |
| mobile:sendBiometricMatch | Send a matching or non-matching biometric input to an iOS Simulator. 'type' must be `touchId` or `faceId`. Match is a boolean indicating if it's a matching or non-matching input | `{type, match}` | `{type: "touchId", match: true}` |
| mobile:isBiometricEnrolled | Check if an iOS Simulator is enrolled or not. Returns `true` if enrolled, `false` if not enrolled. |||
| mobile:clearKeychains | Clear the keychains for an iOS Simulator |||
| mobile:siriCommand| Sends a command to Siri | `{text}` | `{text: "What time is it?"}` |
### Android
| Command | Description | Argument | Argument Example |
| ------- | ----------- | -------- | ---------------- |
| mobile:shell | Execute [ADB shell](https://developer.android.com/studio/command-line/adb#shellcommands) commands (requires [server flag](/docs/en/writing-running-appium/server-args.md#server-flags) `--relaxed-security` to be set) | ADB shell string | `am start -n com.example.demo/com.example.test.MainActivity` |
| mobile:startLogsBroadcast | Starts Android logcat broadcast websocket on the same host and port where Appium is running at `/ws/session/:sessionId:/appium/logcat` endpoint | <none> | <none> |
| mobile:shell | Execute [ADB shell](https://developer.android.com/studio/command-line/adb#shellcommands) commands (requires [insecure feature](/docs/en/writing-running-appium/security.md) `adb_shell` to be enabled) | ADB shell string | `am start -n com.example.demo/com.example.test.MainActivity` |
| mobile:startLogsBroadcast | Starts Android logcat broadcast websocket on the same host and port where Appium is running at `/ws/session/:sessionId:/appium/device/logcat` endpoint | <none> | <none> |
| mobile:stopLogsBroadcast | Stops the logcat broadcasting websocket server started by `mobile:startLogsBroadcast` | <none> | <none> |
| mobile:batteryInfo | Reads the battery information from the device under test | <none> | <none> |
| mobile:acceptAlert | Accepts an on-screen alert | Optional button label to click on | <none> |
| mobile:dismissAlert | Dismisses an on-screen alert | Optional button label to click on | <none> |
| mobile:performEditorAction | Performs the given editor action on the focused input field. The following action names are supported: `normal, unspecified, none, go, search, send, next, done, previous`. | {action} | {action: "previous"}|
| mobile:performEditorAction | Performs the given editor action on the focused input field. The following action names are supported: `normal, unspecified, none, go, search, send, next, done, previous`. | `{action}` | `{action: "previous"}`|
| mobile:getPermissions | Gets a list of permissions which are `denied`, `granted` or `requested`. | `{type, appPackage}` | `{type: "granted", appPackage: "io.appium.android.apis"}`|
| mobile:changePermissions | Grants or revokes permissions. | `{action, appPackage, permissions}` | `{action: "grant", appPackage: "io.appium.android.apis", permissions: "android.permission.READ_CONTACTS"}`, `{action: "revoke", appPackage: "io.appium.android.apis", permissions: ["android.permission.READ_CONTACTS", "android.permission.CAMERA"]}` |
### Android (UiAutomator2 only)
| Command | Description | Argument | Argument Example |
| ------- | ----------- | -------- | ---------------- |
| mobile:batteryInfo | Reads the battery information from the device under test | <none> | <none> |
| mobile:acceptAlert | Accepts an on-screen alert | Optional button label to click on | <none> |
| mobile:dismissAlert | Dismisses an on-screen alert | Optional button label to click on | <none> |
| mobile:scrollBackTo | Scroll from one element to another | `{elementId, elementToId}` | `{elementId: 2, elementToId: 1}` |
| mobile:viewportScreenshot | Like [screenshot](/commands/session/screenshot/) but only includes contents of viewport | <none> | <none> |
| mobile:deepLink | Opens a deep-link URL for testing [Instant Apps](https://support.google.com/googleplay/answer/7240211?hl=en) | `{url, package}` | `{url: "https://www.site.com/", package: "com.site.SomeAndroidPackage"}` |
| mobile:getDeviceInfo | Gets device information like manufacturer and model. Read [GetDeviceInfo](https://github.com/appium/appium-uiautomator2-server/blob/master/app/src/main/java/io/appium/uiautomator2/handler/GetDeviceInfo.java) for more details. | <none> | <none> |
| mobile:deviceInfo | Gets device information like manufacturer and model. Read [GetDeviceInfo](https://github.com/appium/appium-uiautomator2-server/blob/master/app/src/main/java/io/appium/uiautomator2/handler/GetDeviceInfo.java) for more details. | <none> | <none> |
### Android (Espresso only)
| Command | Description | Argument | Argument Example |
| ------- | ----------- | -------- | ---------------- |
| mobile:swipe | Perform the ["swipe" view action](https://developer.android.com/reference/android/support/test/espresso/action/ViewActions.html#swipeDown()) | `{elementId, direction}` | `{elementId: 2, direction: "down|up|left|right"}` |
| mobile:swipe | Perform ["GeneralSwipeAction"](https://developer.android.com/reference/androidx/test/espresso/action/GeneralSwipeAction) | `{elementId, swiper, startCoordinates, endCoordinates, precisionDescriber}` | `{elementId: 3, swiper: "FAST|SLOW", startCoordinates: 'BOTTOM_RIGHT', endCoordinates: 'TOP_RIGHT', precisionDescriber: 'FINGER'}` |
| mobile:clickAction | Perform ["ClickAction"](https://developer.android.com/reference/androidx/test/espresso/action/GeneralClickAction) | `{elementId, tapper, coordinatesProvider, precisionDescriber, inputDevice, buttonState}` | `{elementId: 2, tapper: 'Long', coordinatesProvider: 'BOTTOM_RIGHT', precisionDescriber: 'Thumb', inputDevice: 0, buttonState: 0}` |
| mobile:isToastVisible | Check whether a toast message is visible. `text` is the mandatory argument. `isRegexp` is optional. `text` will be parsed as a regular expression pattern if `isRegexp` is `true`. `isRegexp` is `false` by default. It returns `true` if the `text` exists, or `false` otherwise. | `{text, isRegexp}` | `{ text: 'A toast' }`, `{ text: '^regex$', isRegexp: true } `|
| mobile:openDrawer | Open drawer by [DrawerAction](https://developer.android.com/reference/android/support/test/espresso/contrib/DrawerActions) with [gravity](https://developer.android.com/reference/android/view/Gravity). `gravity` is option. The default is [GravityCompat.START](https://developer.android.com/reference/android/support/v4/view/GravityCompat.html#START). This method blocks until the drawer is fully open. No operation if the drawer is already open. | `{element, gravity}` | `{ element: element_id }`, `{ element: element_id, gravity: 3 }` |
| mobile:closeDrawer | Close drawer by [DrawerAction](https://developer.android.com/reference/android/support/test/espresso/contrib/DrawerActions) with [gravity](https://developer.android.com/reference/android/view/Gravity). `gravity` is option. The default is [GravityCompat.START](https://developer.android.com/reference/android/support/v4/view/GravityCompat.html#START). This method blocks until the drawer is fully closed. No operation if the drawer is already closed. | `{element, gravity}` | `{ element: element_id }`, `{ element: elementId, gravity: 3 }` |
| mobile:setDate | Set date by [PickerActions#setDate](https://developer.android.com/reference/android/support/test/espresso/contrib/PickerActions.html#setDate(int,%20int,%20int)) for [DataPicker](https://developer.android.com/reference/android/widget/DatePicker). | `{element, year, monthOfYear, dayOfMonth}` | `{element: elementId, year: 2018, monthOfYear: 12, dayOfMonth: 1}` |
| mobile:setTime | Set time by [PickerActions#setTime](https://developer.android.com/reference/android/support/test/espresso/contrib/PickerActions.html#setTime(int,%20int)) for [TimePicker](https://developer.android.com/reference/android/widget/TimePicker). | `{element, hours, minutes}` | `{element: elementId, hours: 12, minutes: 10}` |
| mobile:navigateTo | Action to [NavigationView](https://developer.android.com/reference/android/support/design/widget/NavigationView) by [NavigationViewActions#navigateTo](https://developer.android.com/reference/android/support/test/espresso/contrib/NavigationViewActions.html#navigateTo(int)). The view must be a child of a DrawerLayout, of type NavigationView, visible on screen and displayed on screen. | `{element, menuItemId}` | `{element: elementId, menuItemId: 1}` |
| mobile:scrollToPage | Action to [ViewPager](https://developer.android.com/reference/android/support/v4/view/ViewPager) by [ViewPagerActions](https://developer.android.com/reference/android/support/test/espresso/contrib/ViewPagerActions). `scrollTo` must be one of `first`, `last`, `left`, `right`. `scrollTo` is used by default if `scrollTo` and `scrollToPage` are provided. | `{scrollTo, scrollToPage, smoothScroll}` | `{element: elementId, scrollTo: 'left', smoothScroll: true}`, `{element: elementId, scrollToPage: 2}`|
| mobile:backdoor | Invoke arbitrary methods defined in Android app. The methods must be `public`. `target` is `activity`, `application` or `element`. `methods` are methods you would like to invoke. `elementId` is mandatory if `target` is `element`. Read docstring of _mobileBackdoor_ method [here](https://github.com/appium/appium-espresso-driver/blob/master/lib/commands/general.js) for more details | `{target, methods, elementId}` | `{target: 'activity', methods: [{name: 'method1'}, {name: 'method2', args: [{value: 'hello appium', type: 'java.lang.String'}] }] }`, `{target: 'element', elementId: elementId, [{name: 'getTypeface'}, {name: 'isItalic'}]}` |
| mobile:flashElement | Flashes an element on the screen to visually confirm you are operating on the correct element. Can optionally set `durationMillis` (in ms) and `repeatCount` of animation| `{elementId, durationMillis, repeatCount}` | `{elementId: "1234-abcd-5678", durationMillis: 1000, repeatCount: 10}` |
| mobile:uiautomator | Drive areas which are not part of App Under Test, using uiautomator2 APIs. `strategy` can be one of: "clazz", "res", "text", "textContains", "textEndsWith", "textStartsWith","desc", "descContains", "descEndsWith", "descStartsWith" and "pkg", taken from uiautomator [By class](https://developer.android.com/reference/androidx/test/uiautomator/By). `action` can be one of: "click", "longClick", "getText", "getContentDescription", "getClassName","getResourceName", "getVisibleBounds", "getVisibleCenter", "getApplicationPackage","getChildCount", "clear", "isCheckable", "isChecked", "isClickable", "isEnabled","isFocusable", "isFocused", "isLongClickable", "isScrollable" and "isSelected", taken from uiautomator [UiObject2](https://developer.android.com/reference/androidx/test/uiautomator/UiObject2). `index` is optional, if not given, will return all matching results | `{strategy, locator, index, action}` | `{strategy: 'clazz', locator: 'android.widget.TextView', index: 2, action: "getText"}` |
| mobile:webAtoms | Runs a chain of [webatoms](https://developer.android.com/training/testing/espresso/web). `withElement` and `perform` are basic chain items. Please refer [issue](https://github.com/appium/appium-espresso-driver/pull/380) and [Sample test code](https://github.com/appium/ruby_lib_core/blob/c9062c4b744263d790c7de17263cbd4645cdefc6/test/functional/android/android/mobile_commands_test.rb#L196-L239) as references. | `{webviewElement, forceJavascriptEnabled, methodChain}` | (webdriverio) `{ webviewElement: webviewEl.value, forceJavascriptEnabled: true, methodChain: [...]}` |
example_usage:
java:
@@ -101,7 +118,7 @@
// TODO PHP sample
csharp:
|
// TODO C# sample
driver.ExecuteScript("mobile:scroll", new Dictionary<string, string> { { "direction", "down" } });
client_docs:
java: "https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/remote/RemoteWebDriver.html#executeScript-java.lang.String-java.lang.Object...-"
+1 -1
View File
@@ -54,7 +54,7 @@ example_usage:
automationName: 'UiAutomator2',
app: path.resolve('path', 'to', 'app.apk')
}};
let client = webdriverio.remote(options);
let client = driver.newSession(options);
ruby:
|
APP_PATH = '../../path/to/app.app'
+2 -2
View File
@@ -15,7 +15,7 @@ example_usage:
javascript_wdio:
|
driver.end();
driver.endSession();
ruby:
|
quit
@@ -27,7 +27,7 @@ example_usage:
// TODO PHP sample
csharp:
|
// TODO C# sample
driver.Quit();
client_docs:
java: "https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/remote/RemoteWebDriver.html#quit--"
@@ -11,7 +11,7 @@ example_usage:
location = self.driver.location()
javascript_wdio:
|
let location = driver.location();
let location = driver.getGeoLocation();
javascript_wd:
|
let location = await driver.getGeoLocation();
@@ -26,7 +26,7 @@ example_usage:
// TODO PHP sample
csharp:
|
// TODO C# sample
Location location = driver.Location;
client_docs:
java: "https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/html5/LocationContext.html#location--"
@@ -11,7 +11,7 @@ example_usage:
self.driver.set_location(49, 123, 10)
javascript_wdio:
|
driver.location({latitude: 121.21, longitude: 11.56, altitude: 94.23});
driver.setGeoLocation({latitude: "121.21", longitude: "11.56", altitude: "94.23"});
javascript_wd:
|
await driver.setGeoLocation(121.21, 11.56, 10);
@@ -26,7 +26,9 @@ example_usage:
// TODO PHP sample
csharp:
|
// TODO C# sample
driver.Location.Altitude = 94.23;
driver.Location.Latitude = 121.21;
driver.Location.Longitude = 11.56;
client_docs:
java: "https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/html5/LocationContext.html#location--"

Some files were not shown because too many files have changed in this diff Show More