appium-mcp 0.0.1 → 1.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/ci.yml +37 -0
- package/.github/workflows/pr-title.yml +15 -0
- package/.github/workflows/publish.yml +31 -0
- package/.gitmodules +9 -0
- package/.prettierignore +29 -0
- package/.prettierrc +10 -0
- package/.releaserc +37 -0
- package/CHANGELOG.md +37 -0
- package/LICENSE +21 -0
- package/README.md +153 -0
- package/dist/devicemanager/adb-manager.d.ts +71 -0
- package/dist/devicemanager/adb-manager.js +140 -0
- package/dist/devicemanager/adb-manager.js.map +1 -0
- package/dist/devicemanager/ios-manager.d.ts +58 -0
- package/dist/devicemanager/ios-manager.js +122 -0
- package/dist/devicemanager/ios-manager.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +40 -0
- package/dist/index.js.map +1 -0
- package/dist/locators/element-filter.d.ts +13 -0
- package/dist/locators/element-filter.js +79 -0
- package/dist/locators/element-filter.js.map +1 -0
- package/dist/locators/generate-all-locators.d.ts +21 -0
- package/dist/locators/generate-all-locators.js +72 -0
- package/dist/locators/generate-all-locators.js.map +1 -0
- package/dist/locators/locator-generation.d.ts +36 -0
- package/dist/locators/locator-generation.js +501 -0
- package/dist/locators/locator-generation.js.map +1 -0
- package/dist/locators/logger.d.ts +5 -0
- package/dist/locators/logger.js +9 -0
- package/dist/locators/logger.js.map +1 -0
- package/dist/locators/source-parsing.d.ts +43 -0
- package/dist/locators/source-parsing.js +100 -0
- package/dist/locators/source-parsing.js.map +1 -0
- package/dist/resources/index.d.ts +1 -0
- package/dist/resources/index.js +7 -0
- package/dist/resources/index.js.map +1 -0
- package/dist/resources/java/template.d.ts +4 -0
- package/dist/resources/java/template.js +82 -0
- package/dist/resources/java/template.js.map +1 -0
- package/dist/schema.d.ts +2 -0
- package/dist/schema.js +5 -0
- package/dist/schema.js.map +1 -0
- package/dist/scripts/simple-index-documentation.d.ts +20 -0
- package/dist/scripts/simple-index-documentation.js +77 -0
- package/dist/scripts/simple-index-documentation.js.map +1 -0
- package/dist/scripts/simple-query-documentation.d.ts +12 -0
- package/dist/scripts/simple-query-documentation.js +52 -0
- package/dist/scripts/simple-query-documentation.js.map +1 -0
- package/dist/server.d.ts +3 -0
- package/dist/server.js +37 -0
- package/dist/server.js.map +1 -0
- package/dist/tests/__mocks__/@appium/support.d.ts +21 -0
- package/dist/tests/__mocks__/@appium/support.js +30 -0
- package/dist/tests/__mocks__/@appium/support.js.map +1 -0
- package/dist/tests/generate-all-locators.test.d.ts +1 -0
- package/dist/tests/generate-all-locators.test.js +140 -0
- package/dist/tests/generate-all-locators.test.js.map +1 -0
- package/dist/tests/test-setup-wda.d.ts +1 -0
- package/dist/tests/test-setup-wda.js +202 -0
- package/dist/tests/test-setup-wda.js.map +1 -0
- package/dist/tools/answer-appium.d.ts +1 -0
- package/dist/tools/answer-appium.js +71 -0
- package/dist/tools/answer-appium.js.map +1 -0
- package/dist/tools/boot-simulator.d.ts +1 -0
- package/dist/tools/boot-simulator.js +71 -0
- package/dist/tools/boot-simulator.js.map +1 -0
- package/dist/tools/create-session.d.ts +1 -0
- package/dist/tools/create-session.js +192 -0
- package/dist/tools/create-session.js.map +1 -0
- package/dist/tools/delete-session.d.ts +1 -0
- package/dist/tools/delete-session.js +47 -0
- package/dist/tools/delete-session.js.map +1 -0
- package/dist/tools/documentation/index.d.ts +28 -0
- package/dist/tools/documentation/index.js +63 -0
- package/dist/tools/documentation/index.js.map +1 -0
- package/dist/tools/documentation/reasoning-rag.d.ts +88 -0
- package/dist/tools/documentation/reasoning-rag.js +281 -0
- package/dist/tools/documentation/reasoning-rag.js.map +1 -0
- package/dist/tools/documentation/sentence-transformers-embeddings.d.ts +34 -0
- package/dist/tools/documentation/sentence-transformers-embeddings.js +111 -0
- package/dist/tools/documentation/sentence-transformers-embeddings.js.map +1 -0
- package/dist/tools/documentation/simple-pdf-indexer.d.ts +45 -0
- package/dist/tools/documentation/simple-pdf-indexer.js +402 -0
- package/dist/tools/documentation/simple-pdf-indexer.js.map +1 -0
- package/dist/tools/documentation/uploads/documents.json +1 -0
- package/dist/tools/generate-tests.d.ts +2 -0
- package/dist/tools/generate-tests.js +46 -0
- package/dist/tools/generate-tests.js.map +1 -0
- package/dist/tools/index.d.ts +16 -0
- package/dist/tools/index.js +112 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/install-wda.d.ts +1 -0
- package/dist/tools/install-wda.js +219 -0
- package/dist/tools/install-wda.js.map +1 -0
- package/dist/tools/interactions/activate-app.d.ts +2 -0
- package/dist/tools/interactions/activate-app.js +44 -0
- package/dist/tools/interactions/activate-app.js.map +1 -0
- package/dist/tools/interactions/click.d.ts +2 -0
- package/dist/tools/interactions/click.js +45 -0
- package/dist/tools/interactions/click.js.map +1 -0
- package/dist/tools/interactions/double-tap.d.ts +2 -0
- package/dist/tools/interactions/double-tap.js +81 -0
- package/dist/tools/interactions/double-tap.js.map +1 -0
- package/dist/tools/interactions/find.d.ts +13 -0
- package/dist/tools/interactions/find.js +55 -0
- package/dist/tools/interactions/find.js.map +1 -0
- package/dist/tools/interactions/get-text.d.ts +2 -0
- package/dist/tools/interactions/get-text.js +45 -0
- package/dist/tools/interactions/get-text.js.map +1 -0
- package/dist/tools/interactions/install-app.d.ts +2 -0
- package/dist/tools/interactions/install-app.js +43 -0
- package/dist/tools/interactions/install-app.js.map +1 -0
- package/dist/tools/interactions/list-apps.d.ts +2 -0
- package/dist/tools/interactions/list-apps.js +59 -0
- package/dist/tools/interactions/list-apps.js.map +1 -0
- package/dist/tools/interactions/screenshot.d.ts +2 -0
- package/dist/tools/interactions/screenshot.js +49 -0
- package/dist/tools/interactions/screenshot.js.map +1 -0
- package/dist/tools/interactions/set-value.d.ts +2 -0
- package/dist/tools/interactions/set-value.js +46 -0
- package/dist/tools/interactions/set-value.js.map +1 -0
- package/dist/tools/interactions/terminate-app.d.ts +2 -0
- package/dist/tools/interactions/terminate-app.js +45 -0
- package/dist/tools/interactions/terminate-app.js.map +1 -0
- package/dist/tools/interactions/uninstall-app.d.ts +2 -0
- package/dist/tools/interactions/uninstall-app.js +45 -0
- package/dist/tools/interactions/uninstall-app.js.map +1 -0
- package/dist/tools/locators.d.ts +1 -0
- package/dist/tools/locators.js +71 -0
- package/dist/tools/locators.js.map +1 -0
- package/dist/tools/scroll-to-element.d.ts +1 -0
- package/dist/tools/scroll-to-element.js +155 -0
- package/dist/tools/scroll-to-element.js.map +1 -0
- package/dist/tools/scroll.d.ts +1 -0
- package/dist/tools/scroll.js +91 -0
- package/dist/tools/scroll.js.map +1 -0
- package/dist/tools/select-device.d.ts +5 -0
- package/dist/tools/select-device.js +222 -0
- package/dist/tools/select-device.js.map +1 -0
- package/dist/tools/select-platform.d.ts +1 -0
- package/dist/tools/select-platform.js +195 -0
- package/dist/tools/select-platform.js.map +1 -0
- package/dist/tools/session-store.d.ts +7 -0
- package/dist/tools/session-store.js +64 -0
- package/dist/tools/session-store.js.map +1 -0
- package/dist/tools/setup-wda.d.ts +1 -0
- package/dist/tools/setup-wda.js +177 -0
- package/dist/tools/setup-wda.js.map +1 -0
- package/docs/CONTRIBUTING.md +424 -0
- package/eslint.config.js +49 -0
- package/examples/android-gmail.md +7 -0
- package/examples/android-todo-app.md +9 -0
- package/jest.config.js +23 -0
- package/package.json +71 -6
- package/scripts/setup-submodules-sparse.sh +53 -0
- package/scripts/update-submodules.sh +14 -0
- package/src/devicemanager/adb-manager.ts +164 -0
- package/src/devicemanager/ios-manager.ts +145 -0
- package/src/index.ts +47 -0
- package/src/locators/element-filter.ts +134 -0
- package/src/locators/generate-all-locators.ts +149 -0
- package/src/locators/locator-generation.ts +657 -0
- package/src/locators/logger.ts +11 -0
- package/src/locators/source-parsing.ts +149 -0
- package/src/resources/caps.json +697 -0
- package/src/resources/index.ts +7 -0
- package/src/resources/java/template.ts +83 -0
- package/src/resources/submodules/appium/.github/PULL_REQUEST_TEMPLATE.md +28 -0
- package/src/resources/submodules/appium/CHANGELOG.md +45 -0
- package/src/resources/submodules/appium/CONDUCT.md +48 -0
- package/src/resources/submodules/appium/GOVERNANCE.md +185 -0
- package/src/resources/submodules/appium/IDEAS.md +16 -0
- package/src/resources/submodules/appium/README.md +221 -0
- package/src/resources/submodules/appium/ROADMAP.md +30 -0
- package/src/resources/submodules/appium/SPONSORS.md +3 -0
- package/src/resources/submodules/appium/docs/README.md +6 -0
- package/src/resources/submodules/appium/docs/payout.md +35 -0
- package/src/resources/submodules/appium/packages/appium/CHANGELOG.md +1437 -0
- package/src/resources/submodules/appium/packages/appium/README.md +221 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/blog/index.md +2 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/blog/posts/announcing-appiumconf2024.md +45 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/blog/posts/announcing-browserstack-as-strategic-partner.md +46 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/blog/posts/announcing-headspin-as-development-partner.md +47 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/blog/posts/announcing-lambdatest-as-strategic-partner.md +42 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/blog/posts/announcing-sauce-labs-as-strategic-partner.md +36 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/blog/posts/announcing-sponsorship-program.md +48 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/blog/posts/appium3.md +40 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/blog/posts/hello-world.md +15 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/contributing/index.md +150 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/developing/build-docs.md +86 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/developing/build-doctor-checks.md +141 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/developing/build-drivers.md +860 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/developing/build-plugins.md +514 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/developing/config-system.md +451 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/developing/index.md +18 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/developing/sensitive.md +49 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/ecosystem/clients.md +132 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/ecosystem/drivers.md +207 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/ecosystem/index.md +45 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/ecosystem/plugins.md +138 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/ecosystem/tools.md +83 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/guides/branch-testing.md +57 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/guides/caching.md +76 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/guides/caps.md +275 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/guides/config.md +98 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/guides/context.md +44 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/guides/event-timing.md +73 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/guides/execute-methods.md +122 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/guides/grid.md +166 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/guides/headers.md +17 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/guides/log-filters.md +86 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/guides/managing-exts.md +87 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/guides/migrating-1-to-2.md +368 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/guides/migrating-2-to-3.md +464 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/guides/security.md +89 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/guides/settings.md +68 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/guides/tls.md +42 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/index.md +59 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/intro/appium.md +202 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/intro/clients.md +127 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/intro/drivers.md +188 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/intro/history.md +196 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/intro/index.md +39 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/index.md +29 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/install.md +50 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/next-steps.md +23 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/requirements.md +29 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/test-dotnet.md +105 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/test-java.md +23 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/test-js.md +75 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/test-py.md +60 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/test-rb.md +83 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/uiauto2-driver.md +144 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/reference/api/appium.md +394 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/reference/api/bidi.md +70 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/reference/api/index.md +30 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/reference/api/jsonwp.md +214 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/reference/api/mjsonwp.md +151 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/reference/api/others.md +671 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/reference/api/plugins.md +289 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/reference/api/webdriver.md +1114 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/reference/cli/env-vars.md +31 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/reference/cli/extensions.md +239 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/reference/cli/index.md +35 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/reference/cli/server.md +76 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/reference/cli/setup.md +76 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/reference/index.md +25 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/resources/index.md +28 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/sponsors/index.md +64 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/blog/index.md +2 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/blog/posts/announcing-appiumconf2024.md +45 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/blog/posts/announcing-browserstack-as-strategic-partner.md +46 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/blog/posts/announcing-headspin-as-development-partner.md +47 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/blog/posts/announcing-lambdatest-as-strategic-partner.md +41 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/blog/posts/announcing-sauce-labs-as-strategic-partner.md +36 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/blog/posts/announcing-sponsorship-program.md +48 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/blog/posts/appium3.md +40 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/blog/posts/hello-world.md +15 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/contributing/index.md +158 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/developing/build-docs.md +86 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/developing/build-doctor-checks.md +141 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/developing/build-drivers.md +866 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/developing/build-plugins.md +520 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/developing/config-system.md +468 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/developing/index.md +18 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/developing/sensitive.md +49 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/ecosystem/clients.md +143 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/ecosystem/drivers.md +219 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/ecosystem/index.md +45 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/ecosystem/plugins.md +140 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/ecosystem/tools.md +87 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/guides/branch-testing.md +57 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/guides/caching.md +78 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/guides/caps.md +259 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/guides/config.md +102 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/guides/context.md +44 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/guides/event-timing.md +75 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/guides/execute-methods.md +142 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/guides/grid.md +166 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/guides/headers.md +17 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/guides/log-filters.md +86 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/guides/managing-exts.md +89 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/guides/migrating-1-to-2.md +402 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/guides/migrating-2-to-3.md +458 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/guides/security.md +89 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/guides/settings.md +70 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/guides/tls.md +43 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/index.md +55 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/intro/appium.md +191 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/intro/clients.md +139 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/intro/drivers.md +188 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/intro/history.md +196 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/intro/index.md +39 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/index.md +23 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/install.md +47 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/next-steps.md +19 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/requirements.md +29 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/test-dotnet.md +107 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/test-java.md +23 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/test-js.md +77 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/test-py.md +63 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/test-rb.md +85 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/uiauto2-driver.md +148 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/reference/api/appium.md +395 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/reference/api/bidi.md +71 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/reference/api/index.md +30 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/reference/api/jsonwp.md +215 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/reference/api/mjsonwp.md +152 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/reference/api/others.md +672 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/reference/api/plugins.md +291 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/reference/api/webdriver.md +1114 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/reference/cli/env-vars.md +31 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/reference/cli/extensions.md +240 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/reference/cli/index.md +35 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/reference/cli/server.md +76 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/reference/cli/setup.md +78 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/reference/index.md +25 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/resources/index.md +28 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/sponsors/index.md +61 -0
- package/src/resources/submodules/appium/packages/appium/docs/overrides/assets/images/appium-logo-horiz-white.png +0 -0
- package/src/resources/submodules/appium/packages/appium/docs/overrides/assets/images/appium-logo-horiz.png +0 -0
- package/src/resources/submodules/appium/packages/appium/docs/overrides/assets/images/appium-logo-white.png +0 -0
- package/src/resources/submodules/appium/packages/appium/docs/overrides/assets/images/appium-logo.png +0 -0
- package/src/resources/submodules/appium/packages/appium/docs/overrides/assets/images/sponsor-logo-browserstack-dark.png +0 -0
- package/src/resources/submodules/appium/packages/appium/docs/overrides/assets/images/sponsor-logo-browserstack-light.png +0 -0
- package/src/resources/submodules/appium/packages/appium/docs/overrides/assets/images/sponsor-logo-lambdatest-dark.png +0 -0
- package/src/resources/submodules/appium/packages/appium/docs/overrides/assets/images/sponsor-logo-lambdatest-light.png +0 -0
- package/src/resources/submodules/appium/packages/appium/docs/overrides/assets/images/sponsor-logo-sauce.png +0 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/blog/index.md +2 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/blog/posts/announcing-appiumconf2024.md +45 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/blog/posts/announcing-browserstack-as-strategic-partner.md +46 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/blog/posts/announcing-headspin-as-development-partner.md +47 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/blog/posts/announcing-lambdatest-as-strategic-partner.md +41 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/blog/posts/announcing-sauce-labs-as-strategic-partner.md +36 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/blog/posts/announcing-sponsorship-program.md +48 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/blog/posts/appium3.md +40 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/blog/posts/hello-world.md +15 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/contributing/index.md +132 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/developing/build-docs.md +86 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/developing/build-doctor-checks.md +141 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/developing/build-drivers.md +866 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/developing/build-plugins.md +520 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/developing/config-system.md +468 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/developing/index.md +18 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/developing/sensitive.md +49 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/ecosystem/clients.md +143 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/ecosystem/drivers.md +219 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/ecosystem/index.md +45 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/ecosystem/plugins.md +140 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/ecosystem/tools.md +87 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/guides/branch-testing.md +57 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/guides/caching.md +78 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/guides/caps.md +284 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/guides/config.md +102 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/guides/context.md +44 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/guides/event-timing.md +75 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/guides/execute-methods.md +142 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/guides/grid.md +166 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/guides/headers.md +17 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/guides/log-filters.md +86 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/guides/managing-exts.md +89 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/guides/migrating-1-to-2.md +410 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/guides/migrating-2-to-3.md +459 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/guides/security.md +89 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/guides/settings.md +70 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/guides/tls.md +43 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/index.md +54 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/intro/appium.md +200 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/intro/clients.md +139 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/intro/drivers.md +188 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/intro/history.md +196 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/intro/index.md +39 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/index.md +23 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/install.md +47 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/next-steps.md +19 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/requirements.md +21 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/test-dotnet.md +99 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/test-java.md +20 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/test-js.md +62 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/test-py.md +57 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/test-rb.md +80 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/uiauto2-driver.md +148 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/reference/api/appium.md +395 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/reference/api/bidi.md +71 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/reference/api/index.md +30 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/reference/api/jsonwp.md +215 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/reference/api/mjsonwp.md +152 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/reference/api/others.md +672 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/reference/api/plugins.md +291 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/reference/api/webdriver.md +1114 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/reference/cli/env-vars.md +31 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/reference/cli/extensions.md +240 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/reference/cli/index.md +35 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/reference/cli/server.md +76 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/reference/cli/setup.md +78 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/reference/index.md +25 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/resources/index.md +28 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/sponsors/index.md +61 -0
- package/src/resources/submodules/appium/packages/appium/types/manifest/README.md +30 -0
- package/src/resources/submodules/appium/packages/base-driver/CHANGELOG.md +1131 -0
- package/src/resources/submodules/appium/packages/base-driver/README.md +15 -0
- package/src/resources/submodules/appium/packages/base-driver/docs/mjsonwp/errors.md +82 -0
- package/src/resources/submodules/appium/packages/base-driver/docs/mjsonwp/protocol-methods.md +182 -0
- package/src/resources/submodules/appium/packages/base-driver/static/appium.png +0 -0
- package/src/resources/submodules/appium/packages/base-plugin/CHANGELOG.md +672 -0
- package/src/resources/submodules/appium/packages/base-plugin/README.md +15 -0
- package/src/resources/submodules/appium/packages/docutils/CHANGELOG.md +948 -0
- package/src/resources/submodules/appium/packages/docutils/README.md +27 -0
- package/src/resources/submodules/appium/packages/driver-test-support/CHANGELOG.md +717 -0
- package/src/resources/submodules/appium/packages/driver-test-support/README.md +112 -0
- package/src/resources/submodules/appium/packages/eslint-config-appium-ts/CHANGELOG.md +168 -0
- package/src/resources/submodules/appium/packages/eslint-config-appium-ts/README.md +33 -0
- package/src/resources/submodules/appium/packages/execute-driver-plugin/CHANGELOG.md +603 -0
- package/src/resources/submodules/appium/packages/execute-driver-plugin/README.md +42 -0
- package/src/resources/submodules/appium/packages/fake-driver/CHANGELOG.md +545 -0
- package/src/resources/submodules/appium/packages/fake-driver/README.md +7 -0
- package/src/resources/submodules/appium/packages/fake-driver/lib/screen.png +0 -0
- package/src/resources/submodules/appium/packages/fake-plugin/CHANGELOG.md +683 -0
- package/src/resources/submodules/appium/packages/fake-plugin/README.md +7 -0
- package/src/resources/submodules/appium/packages/images-plugin/CHANGELOG.md +602 -0
- package/src/resources/submodules/appium/packages/images-plugin/README.md +27 -0
- package/src/resources/submodules/appium/packages/images-plugin/docs/find-by-image.md +65 -0
- package/src/resources/submodules/appium/packages/images-plugin/docs/image-comparison.md +203 -0
- package/src/resources/submodules/appium/packages/images-plugin/test/fixtures/appstore.png +0 -0
- package/src/resources/submodules/appium/packages/images-plugin/test/fixtures/img1.png +0 -0
- package/src/resources/submodules/appium/packages/images-plugin/test/fixtures/img2.png +0 -0
- package/src/resources/submodules/appium/packages/images-plugin/test/fixtures/img2_part.png +0 -0
- package/src/resources/submodules/appium/packages/logger/CHANGELOG.md +162 -0
- package/src/resources/submodules/appium/packages/logger/README.md +31 -0
- package/src/resources/submodules/appium/packages/opencv/CHANGELOG.md +384 -0
- package/src/resources/submodules/appium/packages/opencv/README.md +68 -0
- package/src/resources/submodules/appium/packages/opencv/test/e2e/images/appium-diagram.jpg +0 -0
- package/src/resources/submodules/appium/packages/opencv/test/e2e/images/cc1.png +0 -0
- package/src/resources/submodules/appium/packages/opencv/test/e2e/images/cc2.png +0 -0
- package/src/resources/submodules/appium/packages/opencv/test/e2e/images/cc_rotated.png +0 -0
- package/src/resources/submodules/appium/packages/opencv/test/e2e/images/findwaldo.jpg +0 -0
- package/src/resources/submodules/appium/packages/opencv/test/e2e/images/number5.png +0 -0
- package/src/resources/submodules/appium/packages/opencv/test/e2e/images/waldo.jpg +0 -0
- package/src/resources/submodules/appium/packages/plugin-test-support/CHANGELOG.md +539 -0
- package/src/resources/submodules/appium/packages/plugin-test-support/README.md +49 -0
- package/src/resources/submodules/appium/packages/relaxed-caps-plugin/CHANGELOG.md +154 -0
- package/src/resources/submodules/appium/packages/relaxed-caps-plugin/README.md +35 -0
- package/src/resources/submodules/appium/packages/schema/CHANGELOG.md +271 -0
- package/src/resources/submodules/appium/packages/schema/README.md +50 -0
- package/src/resources/submodules/appium/packages/storage-plugin/CHANGELOG.md +73 -0
- package/src/resources/submodules/appium/packages/storage-plugin/README.md +83 -0
- package/src/resources/submodules/appium/packages/strongbox/CHANGELOG.md +94 -0
- package/src/resources/submodules/appium/packages/strongbox/README.md +96 -0
- package/src/resources/submodules/appium/packages/support/CHANGELOG.md +1054 -0
- package/src/resources/submodules/appium/packages/support/README.md +161 -0
- package/src/resources/submodules/appium/packages/test-support/CHANGELOG.md +712 -0
- package/src/resources/submodules/appium/packages/test-support/README.md +61 -0
- package/src/resources/submodules/appium/packages/tsconfig/CHANGELOG.md +131 -0
- package/src/resources/submodules/appium/packages/tsconfig/README.md +19 -0
- package/src/resources/submodules/appium/packages/types/CHANGELOG.md +793 -0
- package/src/resources/submodules/appium/packages/types/README.md +21 -0
- package/src/resources/submodules/appium/packages/universal-xml-plugin/CHANGELOG.md +435 -0
- package/src/resources/submodules/appium/packages/universal-xml-plugin/README.md +53 -0
- package/src/resources/submodules/appium/renovate/README.md +63 -0
- package/src/resources/submodules/appium-uiautomator2-driver/CHANGELOG.md +1204 -0
- package/src/resources/submodules/appium-uiautomator2-driver/README.md +2077 -0
- package/src/resources/submodules/appium-uiautomator2-driver/docs/actions.md +72 -0
- package/src/resources/submodules/appium-uiautomator2-driver/docs/activity-startup.md +47 -0
- package/src/resources/submodules/appium-uiautomator2-driver/docs/android-appbundle.md +69 -0
- package/src/resources/submodules/appium-uiautomator2-driver/docs/android-mobile-gestures.md +352 -0
- package/src/resources/submodules/appium-uiautomator2-driver/docs/bidi.md +50 -0
- package/src/resources/submodules/appium-uiautomator2-driver/docs/capability-sets.md +136 -0
- package/src/resources/submodules/appium-uiautomator2-driver/docs/scheduled-actions.md +155 -0
- package/src/resources/submodules/appium-uiautomator2-driver/docs/uiautomator-uiselector.md +51 -0
- package/src/resources/submodules/appium-uiautomator2-driver/docs/unlock/main.md +95 -0
- package/src/resources/submodules/appium-uiautomator2-driver/docs/unlock/screen1.png +0 -0
- package/src/resources/submodules/appium-uiautomator2-driver/docs/unlock/screen2.png +0 -0
- package/src/resources/submodules/appium-uiautomator2-driver/test/functional/assets/checkered-squares.png +0 -0
- package/src/resources/submodules/appium-uiautomator2-driver/test/functional/assets/start-button.png +0 -0
- package/src/resources/submodules/appium-uiautomator2-driver/test/functional/assets/stop-button.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/.github/ISSUE_TEMPLATE.md +4 -0
- package/src/resources/submodules/appium-xcuitest-driver/CHANGELOG.md +2594 -0
- package/src/resources/submodules/appium-xcuitest-driver/README.md +55 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/assets/images/appium-logo-white.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/assets/images/appium-logo.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/assets/images/appium-plus-xctest.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/contributing.md +45 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/endpoints-wda.md +61 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/endpoints.md +98 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/assets/images/ios-xctest-file-movement/keynote.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/assets/images/ios-xctest-file-movement/on_my_iphone.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/assets/images/ios-xctest-file-movement/top_files.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/attach-to-running-wda.md +43 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/audio-capture.md +78 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/capability-sets.md +169 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/ci-setup.md +47 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/clipboard.md +47 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/elements-lookup-troubleshooting.md +158 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/file-transfer.md +147 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/gestures.md +52 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/hybrid.md +137 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/input-events.md +67 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/install-certificate.md +19 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/multiple-xcode-versions.md +37 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/parallel-tests.md +39 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/run-prebuilt-wda.md +135 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/run-preinstalled-wda.md +178 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/touch-id.md +33 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/troubleshooting.md +191 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/tvos.md +114 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/wda-custom-server.md +283 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/wda-slowness.md +231 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/index.md +36 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/installation/index.md +137 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/overview.md +19 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/check-prov-prof.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/create-new-project.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/create-single-page.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/no-prov-prof.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/project-prov-prof.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/set-up-bundle.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/untrusted-dev.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/xcode-bundle-id.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/xcode-config.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/xcode-facebook-fail.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/xcode-facebook-succeed.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/index.md +51 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/prov-profile-basic-auto.md +49 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/prov-profile-basic-manual.md +40 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/prov-profile-full-manual.md +50 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/prov-profile-generic-manual.md +49 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/real-device-config.md +100 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/reference/assets/images/useXctestrunFile.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/reference/bidi.md +75 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/reference/capabilities.md +165 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/reference/commands.md +490 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/reference/element-attributes.md +27 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/reference/execute-methods.md +2206 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/reference/ios-predicate.md +196 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/reference/locator-strategies.md +19 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/reference/scripts.md +29 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/reference/security-flags.md +22 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/reference/server-args.md +16 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/reference/settings.md +49 -0
- package/src/resources/submodules/appium-xcuitest-driver/test/assets/TestApp-iphonesimulator.app/Default-568h@2x.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/test/assets/test.png +0 -0
- package/src/schema.ts +5 -0
- package/src/scripts/simple-index-documentation.ts +93 -0
- package/src/scripts/simple-query-documentation.ts +61 -0
- package/src/server.ts +40 -0
- package/src/tests/README.md +83 -0
- package/src/tests/__mocks__/@appium/support.ts +31 -0
- package/src/tests/generate-all-locators.test.ts +179 -0
- package/src/tests/test-setup-wda.ts +247 -0
- package/src/tools/README.md +170 -0
- package/src/tools/answer-appium.ts +75 -0
- package/src/tools/boot-simulator.ts +87 -0
- package/src/tools/create-session.ts +270 -0
- package/src/tools/delete-session.ts +46 -0
- package/src/tools/documentation/index.ts +97 -0
- package/src/tools/documentation/reasoning-rag.ts +434 -0
- package/src/tools/documentation/sentence-transformers-embeddings.ts +142 -0
- package/src/tools/documentation/simple-pdf-indexer.ts +509 -0
- package/src/tools/documentation/uploads/documents.json +1 -0
- package/src/tools/generate-tests.ts +50 -0
- package/src/tools/index.ts +133 -0
- package/src/tools/install-wda.ts +277 -0
- package/src/tools/interactions/activate-app.ts +46 -0
- package/src/tools/interactions/click.ts +47 -0
- package/src/tools/interactions/double-tap.ts +87 -0
- package/src/tools/interactions/find.ts +58 -0
- package/src/tools/interactions/get-text.ts +47 -0
- package/src/tools/interactions/install-app.ts +45 -0
- package/src/tools/interactions/list-apps.ts +65 -0
- package/src/tools/interactions/screenshot.ts +56 -0
- package/src/tools/interactions/set-value.ts +48 -0
- package/src/tools/interactions/terminate-app.ts +47 -0
- package/src/tools/interactions/uninstall-app.ts +47 -0
- package/src/tools/locators.ts +83 -0
- package/src/tools/scroll-to-element.ts +188 -0
- package/src/tools/scroll.ts +97 -0
- package/src/tools/select-device.ts +298 -0
- package/src/tools/select-platform.ts +243 -0
- package/src/tools/session-store.ts +72 -0
- package/src/tools/setup-wda.ts +218 -0
- package/src/types/appium-ios-device.d.ts +8 -0
- package/src/types/appium-xcuitest-driver.d.ts +5 -0
- package/tsconfig.json +23 -0
- package/index.js +0 -0
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Appium Project History
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Appium has been around in one form or another since 2012. It's been under the
|
|
6
|
+
direction of various individuals and organizations, and it's even been
|
|
7
|
+
implemented in 3 different programming languages! Welcome to more than you ever
|
|
8
|
+
wanted to know about how Appium got to be what is it today...
|
|
9
|
+
|
|
10
|
+
## Early Inspiration
|
|
11
|
+
|
|
12
|
+
[Dan Cuellar](https://twitter.com/thedancuellar) was the Test Manager at Zoosk
|
|
13
|
+
in 2011, when he encountered a problem. The length of the test passes on the
|
|
14
|
+
iOS product was getting out of hand. Less testing was an option, but would come
|
|
15
|
+
with additional risk, especially with it taking several days to get patches
|
|
16
|
+
through the iOS App Store Review process. He thought back to his days working
|
|
17
|
+
on websites and realized automation was the answer.
|
|
18
|
+
|
|
19
|
+
Dan surveyed the existing landscape of tools, only to find that all of them
|
|
20
|
+
hand major drawbacks. The tool supplied by Apple, UIAutomation, required tests
|
|
21
|
+
to be written in JavaScript, and did not allow for real-time debugging or
|
|
22
|
+
interpretation. It also had to be executed inside the Xcode profiling tool,
|
|
23
|
+
Instruments. Other 3rd-party tools used private APIs and required SDKs and HTTP
|
|
24
|
+
Servers to be embedded into the application. This seemed highly undesirable.
|
|
25
|
+
|
|
26
|
+
Unsatisfied with the existing options, Dan asked his manager for some
|
|
27
|
+
additional time to see if he could find a better way. He spent 2 weeks poking
|
|
28
|
+
and prodding around to see if there was a way to use approved Apple
|
|
29
|
+
technologies to automate an iOS application. The first implementation he tried
|
|
30
|
+
used AppleScript to send messages to Mac UI elements using the OS
|
|
31
|
+
X accessibility APIs. This worked to some degree, but would never work on real
|
|
32
|
+
devices, not to mention other drawbacks.
|
|
33
|
+
|
|
34
|
+
So he thought, what if I could get the UIAutomation framework to run in real
|
|
35
|
+
time like an interpreter? He looked into it and he determined that all he would
|
|
36
|
+
need to do is find a way to receive, execute, and reply to commands from within
|
|
37
|
+
a UIAutomation javascript program. Using the utility Apple provided for
|
|
38
|
+
executing shell commands he was able to `cat` sequentially ordered text files
|
|
39
|
+
to receive commands, `eval()` the output to execute them, and write them back
|
|
40
|
+
to disk with `python`. He then prepared code in C# that implemented the
|
|
41
|
+
Selenium-style syntax to write the sequentially ordered javascript commands.
|
|
42
|
+
iOSAuto is born.
|
|
43
|
+
|
|
44
|
+
## Selenium Conference 2012
|
|
45
|
+
|
|
46
|
+
Dan was selected to speak at Selenium Conference 2012 in London about an
|
|
47
|
+
entirely different topic. As part of his presentation, he showed off iOS
|
|
48
|
+
Automation using Selenium syntax to demonstrate writing platform-agnostic tests
|
|
49
|
+
that use separate platform-specific page objects with a common interface. To
|
|
50
|
+
his surprise, the cool test architecture would take a backseat to the spectacle
|
|
51
|
+
of iOS tests running like WebDriver tests. Several people suggested that he
|
|
52
|
+
give a lightning talk later in the conference to explain exactly how it worked.
|
|
53
|
+
|
|
54
|
+
On the second day of the conference, Dan stepped up on stage to give the
|
|
55
|
+
lightning talk. Jason Huggins, co-creator of Selenium, moderated the lightning
|
|
56
|
+
talks. Dan experienced technical difficulties getting his presentation to
|
|
57
|
+
load, and Jason nearly had to move on to the next lightning talk. At the last
|
|
58
|
+
moment, the screen turned on and Dan jumped into his presentation. He explained
|
|
59
|
+
the details of his implementation and how it worked, begged for contributors,
|
|
60
|
+
and in five minutes it was over. The crowd applauded politely, and he left the
|
|
61
|
+
stage.
|
|
62
|
+
|
|
63
|
+
## The Phone Rings
|
|
64
|
+
|
|
65
|
+
Four months after the Selenium Conference, Jason called Dan. Jason had been
|
|
66
|
+
working on iOS testing support for a client at Sauce Labs. Jason remembered
|
|
67
|
+
Dan's lightning talk and thought the project might be useful to Jason's work,
|
|
68
|
+
but Dan's source code was not public. Jason asked Dan to meet up. Later that
|
|
69
|
+
week, Dan met Jason in a bar in San Francisco and showed him the source code
|
|
70
|
+
for iOS Auto.
|
|
71
|
+
|
|
72
|
+
A long-time open source advocate, Jason encouraged Dan to release his code
|
|
73
|
+
under an open source license. In August, Dan released the source
|
|
74
|
+
code
|
|
75
|
+
on GitHub in C#. Jason encouraged Dan to change the language to make the
|
|
76
|
+
project more appealing to potential contributors. Dan uploaded a new version
|
|
77
|
+
in
|
|
78
|
+
Python.
|
|
79
|
+
In September, Jason added a web server and began to implement the WebDriver
|
|
80
|
+
wire
|
|
81
|
+
protocol
|
|
82
|
+
over HTTP, making iOS Auto scriptable from any Selenium WebDriver client
|
|
83
|
+
library in any language.
|
|
84
|
+
|
|
85
|
+
## The Mobile Testing Summit
|
|
86
|
+
|
|
87
|
+
Jason decided that the project should be presented at the Mobile Testing
|
|
88
|
+
Summit in November, but suggested that the
|
|
89
|
+
project get a new name first. Many ideas were thrown out and they settled on
|
|
90
|
+
AppleCart. A day later, while he was perusing some of Apple's guidance on
|
|
91
|
+
copyright and trademarks, Jason noticed that under the section of examples for
|
|
92
|
+
names Apple would defend its trademarks against, the first example was
|
|
93
|
+
"AppleCart". He called Dan and informed him of the situation, and they
|
|
94
|
+
brainstormed for a bit before Jason hit the jackpot. Appium... Selenium for
|
|
95
|
+
Apps.
|
|
96
|
+
|
|
97
|
+
## Sauce Labs and Node.js
|
|
98
|
+
|
|
99
|
+
In January 2013, not long after the Mobile Testing Summit, Sauce Labs decided
|
|
100
|
+
to fully back Appium and provide more developer power. A task force was created
|
|
101
|
+
to evaluate the current state and how best to move forward with the project.
|
|
102
|
+
The team, which included Jonathan Lipps (the current project lead), decided
|
|
103
|
+
that Appium needed a rebirth, and ultimately settled on Node.js as the
|
|
104
|
+
framework to use. Node is well-known as a fast and efficient web server
|
|
105
|
+
backend, and at the end of the day, Appium is just a highly-specialized web
|
|
106
|
+
server. It was also decided that JavaScript as a language was accessible enough
|
|
107
|
+
that Appium would be able to grow into a larger community of open-source
|
|
108
|
+
developers with JavaScript than the other options on the table.
|
|
109
|
+
|
|
110
|
+
In just a few days, the team leveraged the existing work on Appium and had
|
|
111
|
+
a new version of Appium with as much functionality as the previous Python
|
|
112
|
+
version. The foundation had been laid for Appium's basic architecture, and we
|
|
113
|
+
have been successfully building on it since. A few weeks into this sprint,
|
|
114
|
+
Jonathan Lipps was formally designated project lead and he began to strategize
|
|
115
|
+
how to get more people from the community involved with Appium's development.
|
|
116
|
+
|
|
117
|
+
## Appium Around the World
|
|
118
|
+
|
|
119
|
+
Ultimately, Jonathan decided that getting Appium in front of as many developers
|
|
120
|
+
at conferences and meetups was the best way to attract users and contributions.
|
|
121
|
+
Appium in its new incarnation was debuted at the Google Test Automation
|
|
122
|
+
Conference 2013. Later in 2013,
|
|
123
|
+
Appium was presented at conferences and meetups all around the US, as well as
|
|
124
|
+
in England, Poland, Portugal, and Australia. Notably, Jonathan had Appium
|
|
125
|
+
[perform as instruments in a band](https://www.youtube.com/watch?v=zsbNVkayYRQ)
|
|
126
|
+
and Dan Cuellar put together a fun Appium video
|
|
127
|
+
montage for Selenium Conference.
|
|
128
|
+
|
|
129
|
+
But during all these presentations and conferences, the project continued to
|
|
130
|
+
develop. Early in 2013 we released Android and Selendroid support, making
|
|
131
|
+
Appium the first truly cross-platform automation framework. The project also
|
|
132
|
+
continued to attract users and contributors, and by the end of 2013, we'd
|
|
133
|
+
already had well over 1,000 commits.
|
|
134
|
+
|
|
135
|
+
## The Road to Appium 1.0
|
|
136
|
+
|
|
137
|
+
Appium began to grow and mature significantly. In May 2014,
|
|
138
|
+
we released Appium 1.0, which stood as a milestone in Appium's development.
|
|
139
|
+
Appium was given
|
|
140
|
+
[various](https://www.prnewswire.com/news-releases/black-duck-announces-black-duck-open-source-rookies-of-the-year-winners-242383341.html)
|
|
141
|
+
[awards](https://www.infoworld.com/article/2241247/164642-bossie-awards-2014-the-best-open-source-application-development-tools.html)
|
|
142
|
+
and became the most popular open-source cross-platform mobile automation
|
|
143
|
+
framework. Stability improved, bugs were prioritized and fixed, and features
|
|
144
|
+
added. Sauce Labs increased the number of developers it donated to working
|
|
145
|
+
on Appium, but the entire community stayed involved in guiding the project and
|
|
146
|
+
contributing to it, and project governance continued to happen in the open, on
|
|
147
|
+
public mailing lists and GitHub's issue tracker.
|
|
148
|
+
|
|
149
|
+
## The Appium Umbrella Broadens
|
|
150
|
+
|
|
151
|
+
Eventually, it became clear that the Appium codebase was not optimized for
|
|
152
|
+
a large team of distributed, sometime contributors. We took the opportunity as
|
|
153
|
+
a committer team to rewrite Appium from the ground up, using a more modern
|
|
154
|
+
version of the JavaScript language, and redoing Appium's architecture so that
|
|
155
|
+
it was easy for users or third-party developers to build their own Appium
|
|
156
|
+
"drivers". We wanted for it to be easier for new contributors to get ramped up
|
|
157
|
+
on the Appium codebase, and to see support for new platforms added to Appium by
|
|
158
|
+
groups other than the core team. That vision has begun to be fulfilled, with
|
|
159
|
+
groups like Microsoft and Youi.tv adding drivers to Appium for Windows desktop
|
|
160
|
+
app automation and Youi.tv app automation, respectively.
|
|
161
|
+
|
|
162
|
+
## Appium To The People
|
|
163
|
+
|
|
164
|
+
In late 2016, Sauce Labs donated Appium as a project to the JS
|
|
165
|
+
Foundation, in order to cement for the world Sauce's
|
|
166
|
+
commitment that Appium remains open source. The JS Foundation is a non-profit
|
|
167
|
+
open source stewardship organization which takes responsibility for holding the
|
|
168
|
+
copyright for open source projects, as well as ensuring they have a long and
|
|
169
|
+
successful tenure in the community. As a result of our move to a non-profit
|
|
170
|
+
foundation, we hope that the door will open even more widely for new
|
|
171
|
+
contributors, either as individuals or representing one of the many companies
|
|
172
|
+
which now have an interest in seeing Appium move forward.
|
|
173
|
+
|
|
174
|
+
Eventually, the JS Foundation merged into the [OpenJS Foundation](https://openjsf.org),
|
|
175
|
+
and Appium became an Impact Project in the foundation.
|
|
176
|
+
|
|
177
|
+
## Appium 2.0
|
|
178
|
+
|
|
179
|
+
Appium 2 was released in 2023 and introduced an entirely revamped architecture, shifting focus to Appium
|
|
180
|
+
as an ecosystem rather than an all-in-one project. This unlocked the ability for anyone to develop
|
|
181
|
+
and share their own Appium extensions (drivers and plugins), opening up a world of possibilities
|
|
182
|
+
for automation-related development for platforms far beyond iOS and Android! As a result,
|
|
183
|
+
many third-party extensions were created, such as new drivers for Flutter and Windows, plugins for
|
|
184
|
+
mocking APIs and managing device farms, new Appium clients based on Rust and Swift, and much more.
|
|
185
|
+
|
|
186
|
+
Around this time was also when we started a sponsorship program for Appium, which attracted various
|
|
187
|
+
major and minor sponsors alike. This allowed us to give back to the Appium community, by compensating
|
|
188
|
+
contributors for their voluntary work on the project.
|
|
189
|
+
|
|
190
|
+
## Appium 3.0
|
|
191
|
+
|
|
192
|
+
2025 saw the release of Appium 3. This update was a lot smaller than Appium 2 and included only a
|
|
193
|
+
few behavioral changes, instead focusing on removing deprecated code and updating compatibility for
|
|
194
|
+
more modern ecosystems. Still, this reduced scope was also to be expected: since Appium 2, the
|
|
195
|
+
main feature development efforts had shifted to individual drivers and plugins, many of which had
|
|
196
|
+
gone through multiple major updates during the Appium 2 era.
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
---
|
|
2
|
+
hide:
|
|
3
|
+
- toc
|
|
4
|
+
|
|
5
|
+
title: Appium in a Nutshell
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
As mentioned on the main page, Appium aims to support UI automation of many _different platforms_
|
|
9
|
+
(mobile, web, desktop, etc.). Not only that, but it also aims to support automation code written in
|
|
10
|
+
_different languages_ (JS, Java, Python, etc.). Combining all of this functionality in a single
|
|
11
|
+
program is a very daunting, if not impossible task!
|
|
12
|
+
|
|
13
|
+
In order to achieve this, Appium is effectively split into four parts:
|
|
14
|
+
|
|
15
|
+
<div class="grid cards" markdown>
|
|
16
|
+
|
|
17
|
+
- :material-image-filter-center-focus-strong: **Appium Core** - defines the core APIs
|
|
18
|
+
- :material-car: **Drivers** - implement connectivity to specific platforms
|
|
19
|
+
- :octicons-code-16: **Clients** - implement Appium's API in specific languages
|
|
20
|
+
- :fontawesome-solid-plug: **Plugins** - change or extend Appium's core functionality
|
|
21
|
+
|
|
22
|
+
</div>
|
|
23
|
+
|
|
24
|
+
Therefore, in order to start automating something with Appium, you need to:
|
|
25
|
+
|
|
26
|
+
- Install Appium itself
|
|
27
|
+
- Install a driver for your target platform
|
|
28
|
+
- Install a client library for your target programming language
|
|
29
|
+
- (Optional) install one or more plugins
|
|
30
|
+
|
|
31
|
+
These are the basics! If you are ready to jump in, proceed with the [Quickstart](../quickstart/index.md)!
|
|
32
|
+
|
|
33
|
+
If you wish to learn more details about how it all works, see these pages for background material:
|
|
34
|
+
|
|
35
|
+
- [Appium Core](./appium.md)
|
|
36
|
+
- [Appium Drivers](./drivers.md)
|
|
37
|
+
- [Appium Clients](./clients.md)
|
|
38
|
+
|
|
39
|
+
Finally, to learn about the origins of Appium, check out the [Appium Project History](./history.md).
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
---
|
|
2
|
+
hide:
|
|
3
|
+
- toc
|
|
4
|
+
|
|
5
|
+
title: Getting Started
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
さっそくAppiumを使ってみましょう! このクイックスタートをうまく使うために、[はじめに](../intro/index.md)を読み、Appiumの実行やスクリプトの記述に関わる概念を理解することをお勧めします。
|
|
9
|
+
|
|
10
|
+
このクイックスタートは以下の通り進めます:
|
|
11
|
+
|
|
12
|
+
1. Appiumをインストールする
|
|
13
|
+
2. Appiumドライバーとその依存関係をインストールする
|
|
14
|
+
- このガイドでは、[UiAutomator2 driver](https://github.com/appium/appium-uiautomator2-driver) について説明します
|
|
15
|
+
3. お好みの言語でAppiumクライアント・ライブラリをインストールする
|
|
16
|
+
- このガイドでは、JavaScript、Python、Java、Ruby、.NETの例で説明します
|
|
17
|
+
4. サンプルアプリケーションを使用した簡単なAppiumでの自動化スクリプトの作成と実行
|
|
18
|
+
|
|
19
|
+
### 必要条件
|
|
20
|
+
|
|
21
|
+
始める前に、お使いのシステムが[要件](../quickstart/requirements.md) を満たしていることを確認してください。 追加要件については、UiAutomator2 ドライバーのインストールと合わせて説明します。 また、このガイドでは基本的なコマンド実行や環境変数の設定と保持などができることを前提としています。
|
|
22
|
+
|
|
23
|
+
さあ、これで準備は整いました! [Appiumのインストール](./install.md)に進んでください。
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
---
|
|
2
|
+
hide:
|
|
3
|
+
- toc
|
|
4
|
+
|
|
5
|
+
title: Appiumをインストールする
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
!!! info
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
インストールする前に[システム要件](./requirements.md)を満たしているか確認してください。
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
Appium は `npm` を使用してグローバルにインストールできます:
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
npm install -g appium
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
!!! note
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
他のパッケージマネージャーは現在サポートされていません。
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Appiumを実行する
|
|
27
|
+
|
|
28
|
+
Appium can be started [using the command line](../reference/cli/index.md):
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
appium
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
このコマンドはインストールされているAppiumドライバーをすべて読み込むAppiumサーバープロセスを起動し、クライアント接続(テスト自動化スクリプトなど)から新規セッションの開始要求を待ちます。
|
|
35
|
+
サーバープロセスはクライアントから独立しているため、新しいセッションを開始する前に明示的に起動する必要があります。
|
|
36
|
+
|
|
37
|
+
サーバーが起動すると、コンソールログに、クライアントがこのサーバーに接続するために使用できる有効なURLがすべてリストされます:
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
[Appium] You can provide the following URLs in your client code to connect to this server:
|
|
41
|
+
[Appium] http://127.0.0.1:4723/ (only accessible from the same host)
|
|
42
|
+
(... any other URLs ...)
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
クライアントが新規セッションを要求すると、Appium サーバープロセスは、このセッションが終了するまで、このセッションに関するすべての詳細のログ記録を開始します。 覚えておいてください。Appium テストで問題が発生した場合は、いつでもサーバー ログで詳細を確認できます。
|
|
46
|
+
|
|
47
|
+
次は何でしょうか? Appium はインストールされて実行されていますが、ドライバーがバンドルされていないため、まだ何も自動化できません。 そこで、Android向けに自動化を設定します。[Installing the UiAutomator2 Driver](./uiauto2-driver.md)へ続く。
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
hide:
|
|
3
|
+
- toc
|
|
4
|
+
|
|
5
|
+
title: 次のステップ
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
Android自動化用のシステムの設定と簡単なテストの実行が完了したら、このドキュメントを引き続き参照してください。 特に初心者にとって、これらは優れたガイドと参考資料です:
|
|
9
|
+
|
|
10
|
+
- [エコシステム](../ecosystem/index.md) ページ: 利用可能なドライバー、クライアント、プラグイン、ツールを見る
|
|
11
|
+
- [Appium ドライバーとプラグインの管理](../guides/managing-exts.md)
|
|
12
|
+
- [Capabilities](../guides/caps.md)
|
|
13
|
+
- [Settings](../guides/settings.md)
|
|
14
|
+
|
|
15
|
+
また、[Appium Inspector](https://github.com/appium/appium-inspector) は、アプリの視覚的な検査を可能にし、テストスクリプトで使用する要素ロケーターを見つけるのに役立つ、Appium テストの作成に不可欠なツールです。
|
|
16
|
+
|
|
17
|
+
また、多くのオンライン Appium コースもご活用いただけます。
|
|
18
|
+
|
|
19
|
+
頑張って楽しんでください!
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
hide:
|
|
3
|
+
- toc
|
|
4
|
+
|
|
5
|
+
title: System Requirements
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
The basic requirements for the Appium server are:
|
|
9
|
+
|
|
10
|
+
- A macOS, Linux, or Windows operating system
|
|
11
|
+
- [Node.js](https://nodejs.org) version in the [SemVer](https://semver.org) range `^20.19.0 || ^22.12.0 || >=24.0.0`
|
|
12
|
+
- LTS is recommended
|
|
13
|
+
- [`npm`](https://npmjs.com) version `>=10` (`npm` is usually bundled with Node.js, but can be upgraded
|
|
14
|
+
independently)
|
|
15
|
+
|
|
16
|
+
By itself, Appium is relatively lightweight and doesn't have significant disk space or RAM
|
|
17
|
+
requirements. It can even be run in resource-constrained environments like Raspberry Pi, so long as
|
|
18
|
+
Node.js is available.
|
|
19
|
+
|
|
20
|
+
### Driver Requirements
|
|
21
|
+
|
|
22
|
+
Drivers for automating specific platforms will likely have other requirements. Refer to the
|
|
23
|
+
documentation of the [Appium driver(s)](../ecosystem/drivers.md) for that platform for additional
|
|
24
|
+
dependencies. It is almost universally the case that Appium drivers for a given platform will
|
|
25
|
+
require the developer toolchain and SDKs for that platform to be installed.
|
|
26
|
+
|
|
27
|
+
In order to assist with driver requirements, each (official) driver comes with the Appium Doctor tool,
|
|
28
|
+
which allows to verify if all requirements have been set up. Learn more about how to use this tool in
|
|
29
|
+
the [Command-Line Usage documentation](../reference/cli/extensions.md#doctor).
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
---
|
|
2
|
+
hide:
|
|
3
|
+
- toc
|
|
4
|
+
|
|
5
|
+
title: Write a Test (.NET)
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
The [Appium .NET Client](https://github.com/appium/dotnet-client/) is
|
|
9
|
+
an official Appium client in C#. This driver is an extension of the Selenium C# client. It has all the functionalities of the regular driver, but add Appium-specific methods on top of this. The driver is available on the public NuGet Gallery as [Appium.WebDriver](https://www.nuget.org/packages/Appium.WebDriver/).
|
|
10
|
+
|
|
11
|
+
Now, we get inside the directory and create a new [NUnit](https://nunit.org/) project. We will also add the references to the Appium.Net driver, and other dependencies.
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
cd dotnet-client
|
|
15
|
+
dotnet new nunit --name appiumtest
|
|
16
|
+
|
|
17
|
+
cd appiumtest
|
|
18
|
+
|
|
19
|
+
# This will install the latest 5.x version
|
|
20
|
+
dotnet add package Appium.WebDriver --prerelease
|
|
21
|
+
dotnet add package Newtonsoft.Json --version 13.0.3
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Once this is done, your project should have a placeholder file `UnitTest1.cs`. We will replace the code to include the OpenQA namespaces, an initialization of the driver, and the actual test.
|
|
25
|
+
|
|
26
|
+
```C# title="UnitTest1.cs"
|
|
27
|
+
using OpenQA.Selenium;
|
|
28
|
+
using OpenQA.Selenium.Appium;
|
|
29
|
+
using OpenQA.Selenium.Appium.Android;
|
|
30
|
+
using OpenQA.Selenium.Appium.Enums;
|
|
31
|
+
|
|
32
|
+
namespace appiumtest;
|
|
33
|
+
|
|
34
|
+
public class Tests
|
|
35
|
+
{
|
|
36
|
+
private AndroidDriver _driver;
|
|
37
|
+
|
|
38
|
+
[OneTimeSetUp]
|
|
39
|
+
public void SetUp()
|
|
40
|
+
{
|
|
41
|
+
var serverUri = new Uri(Environment.GetEnvironmentVariable("APPIUM_HOST") ?? "http://127.0.0.1:4723/");
|
|
42
|
+
var driverOptions = new AppiumOptions() {
|
|
43
|
+
AutomationName = AutomationName.AndroidUIAutomator2,
|
|
44
|
+
PlatformName = "Android",
|
|
45
|
+
DeviceName = "Android Emulator",
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
driverOptions.AddAdditionalAppiumOption("appPackage", "com.android.settings");
|
|
49
|
+
driverOptions.AddAdditionalAppiumOption("appActivity", ".Settings");
|
|
50
|
+
// NoReset assumes the app com.google.android is preinstalled on the emulator
|
|
51
|
+
driverOptions.AddAdditionalAppiumOption("noReset", true);
|
|
52
|
+
|
|
53
|
+
_driver = new AndroidDriver(serverUri, driverOptions, TimeSpan.FromSeconds(180));
|
|
54
|
+
_driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
[OneTimeTearDown]
|
|
58
|
+
public void TearDown()
|
|
59
|
+
{
|
|
60
|
+
_driver.Dispose();
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
[Test]
|
|
64
|
+
public void TestFindApps()
|
|
65
|
+
{
|
|
66
|
+
_driver.StartActivity("com.android.settings", ".Settings");
|
|
67
|
+
_driver.FindElement(By.XPath("//*[@text='Apps']")).Click();
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
!!! note
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
It's not within the scope of this guide to give a complete run-down on the dotnet client
|
|
76
|
+
library or everything that's happening here, so we'll leave the code itself unexplained in
|
|
77
|
+
detail for now. You may want to read up particularly on Appium
|
|
78
|
+
[Capabilities](../guides/caps.md) in addition to familiarizing yourself with the
|
|
79
|
+
[dotnet client driver documentation](https://github.com/appium/dotnet-client/) for a fuller explanation
|
|
80
|
+
of the various API commands you see and what their purpose is.
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Basically, this code is doing the following:
|
|
84
|
+
|
|
85
|
+
1. Defining a set of "Capabilities" (parameters) to send to the Appium server so Appium knows what
|
|
86
|
+
kind of thing you want to automate. Some of these parameters can be overridden using environment variables.
|
|
87
|
+
2. Starting an Appium session on the built-in Android settings app.
|
|
88
|
+
3. Finding the "Apps" list item and clicking it.
|
|
89
|
+
4. Ending the Appium session.
|
|
90
|
+
|
|
91
|
+
That's it! Let's give it a try. Before you run the test, make sure that you have an Appium server
|
|
92
|
+
running in another terminal session, otherwise you'll get an error about not being able to connect
|
|
93
|
+
to one. Then, you can execute the script:
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
dotnet test
|
|
97
|
+
|
|
98
|
+
# Example output:
|
|
99
|
+
# Starting test execution, please wait...
|
|
100
|
+
# A total of 1 test files matched the specified pattern.
|
|
101
|
+
|
|
102
|
+
# Passed! - Failed: 0, Passed: 1, Skipped: 0, Total: 1, Duration: 323 ms - appiumtest.dll (net7.0)
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
If all goes well, you'll see the Settings app open up and navigate to the "Apps" view in the emulator before the app closes again.
|
|
106
|
+
|
|
107
|
+
Congratulations, you've started your Appium journey! Read on for some [next steps](./next-steps.md) to explore.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
---
|
|
2
|
+
hide:
|
|
3
|
+
- toc
|
|
4
|
+
|
|
5
|
+
title: Write a Test (Java)
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
The Appium team maintains an official [client](https://github.com/appium/java-client) for the Java programming language.
|
|
9
|
+
It is built on top of [Selenium](https://github.com/SeleniumHQ/selenium).
|
|
10
|
+
You can also use this client in your Kotlin projects.
|
|
11
|
+
|
|
12
|
+
Follow the [Add Appium java client to your test framework](https://github.com/appium/java-client#add-appium-java-client-to-your-test-framework)
|
|
13
|
+
tutorial in order to connect the library to your test framework sources.
|
|
14
|
+
|
|
15
|
+
The Appium Java client has dedicated classes to support most of the official Appium drivers. For other drivers
|
|
16
|
+
you could simply use the [AppiumDriver](https://github.com/appium/java-client/blob/master/src/main/java/io/appium/java_client/AppiumDriver.java) class
|
|
17
|
+
or build your custom derivatives from it. Check the [Drivers Support](https://github.com/appium/java-client#drivers-support)
|
|
18
|
+
article to learn more about the current driver class implementations.
|
|
19
|
+
|
|
20
|
+
Follow the [Usage Examples](https://github.com/appium/java-client#usage-examples) article in order understand
|
|
21
|
+
how to invoke Java client features from your test framework.
|
|
22
|
+
|
|
23
|
+
Once you've managed to successfully run a test, you can read on for some [next steps](./next-steps.md) to explore.
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
---
|
|
2
|
+
hide:
|
|
3
|
+
- toc
|
|
4
|
+
|
|
5
|
+
title: Write a Test (JS)
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
To write an Appium test in JavaScript (Node.js), we need to choose an Appium-compatible client
|
|
9
|
+
library. The best-maintained library and the one the Appium team recommends using is
|
|
10
|
+
[WebdriverIO](https://webdriver.io), so let's use that. Since we already have Appium installed we
|
|
11
|
+
know our Node and NPM requirements are already satisfied. So just create a new project directory
|
|
12
|
+
somewhere on your computer and then initialize a new Node.js project in it:
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
npm init
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
It doesn't really matter what you put in the prompts, just so long as you end up with a valid
|
|
19
|
+
`package.json`.
|
|
20
|
+
|
|
21
|
+
Now, install the `webdriverio` package via NPM:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
npm i --save-dev webdriverio
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Once this is done, your `package.json` file should include a section like the following:
|
|
28
|
+
|
|
29
|
+
```json title="package.json"
|
|
30
|
+
--8<-- "./sample-code/quickstarts/js/package.json"
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Now it's time to type up the test itself. Create a new file called `test.js` with the following
|
|
34
|
+
contents:
|
|
35
|
+
|
|
36
|
+
```js title="test.js"
|
|
37
|
+
--8<-- "./sample-code/quickstarts/js/test.js"
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
!!! note
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
It's not within the scope of this guide to give a complete run-down on the WebdriverIO client
|
|
44
|
+
library or everything that's happening here, so we'll leave the code itself unexplained in
|
|
45
|
+
detail for now. You may want to read up particularly on Appium
|
|
46
|
+
[Capabilities](../guides/caps.md) in addition to familiarizing yourself with the excellent
|
|
47
|
+
[WebdriverIO documentation](https://webdriver.io/docs/gettingstarted) for a fuller explanation
|
|
48
|
+
of the various API commands you see and what their purpose is.
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
!!! note
|
|
52
|
+
|
|
53
|
+
```
|
|
54
|
+
The sample code is available from [GitHub Appium repository](https://github.com/appium/appium/tree/master/packages/appium/sample-code/quickstarts/js).
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Basically, this code is doing the following:
|
|
58
|
+
|
|
59
|
+
1. Defining a set of "Capabilities" (parameters) to send to the Appium server so Appium knows what
|
|
60
|
+
kind of thing you want to automate.
|
|
61
|
+
2. Starting an Appium session on the built-in Android settings app.
|
|
62
|
+
3. Finding the "Apps" list item and clicking it.
|
|
63
|
+
4. Pausing for a moment purely for visual effect.
|
|
64
|
+
5. Ending the Appium session.
|
|
65
|
+
|
|
66
|
+
That's it! Let's give it a try. Before you run the test, make sure that you have an Appium server
|
|
67
|
+
running in another terminal session, otherwise you'll get an error about not being able to connect
|
|
68
|
+
to one. Then, you can execute the script:
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
node test.js
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
If all goes well, you'll see the Settings app open up and navigate to the "Apps" view before the
|
|
75
|
+
app closes again.
|
|
76
|
+
|
|
77
|
+
Congratulations, you've started your Appium journey! Read on for some [next steps](./next-steps.md) to explore.
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
---
|
|
2
|
+
hide:
|
|
3
|
+
- toc
|
|
4
|
+
|
|
5
|
+
title: Write a Test (Python)
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
The [Appium Python Client](https://github.com/appium/python-client) is
|
|
9
|
+
an official Appium client in Python, which is available via pypi under the [Appium-Python-Client](https://pypi.org/project/Appium-Python-Client/) package name.
|
|
10
|
+
It inherits from the [Selenium Python Binding](https://pypi.org/project/selenium/),
|
|
11
|
+
so installing the Appium Python Client includes the selenium binding.
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
pip install Appium-Python-Client
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
This example uses Python's built-in `unittest` module, though you can use any Python test framework you want.
|
|
18
|
+
The Appium Python client adds the `appium:` vendor prefix automatically.
|
|
19
|
+
You usually do not need to worry about the prefix.
|
|
20
|
+
|
|
21
|
+
```python title="test.py"
|
|
22
|
+
--8<-- "./sample-code/quickstarts/py/test.py"
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
!!! note
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
It's not within the scope of this guide to give a complete run-down on the Python client
|
|
29
|
+
library or everything that's happening here, so we'll leave the code itself unexplained in detail for now.
|
|
30
|
+
|
|
31
|
+
- You may want to read up particularly on Appium [Capabilities](../guides/caps.md).
|
|
32
|
+
- [functional test code](https://github.com/appium/python-client/tree/master/test/functional) in Python Client GitHub repository should help to find more working example.
|
|
33
|
+
- [Documentation](https://appium.github.io/python-client-sphinx/) also helps to find methods
|
|
34
|
+
defined in the Appium Python Client.
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
!!! note
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
The sample code is available from [GitHub Appium repository](https://github.com/appium/appium/tree/master/packages/appium/sample-code/quickstarts/py).
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Basically, this code is doing the following:
|
|
44
|
+
|
|
45
|
+
1. Defining a set of "Capabilities" (parameters) to send to the Appium server so Appium knows what
|
|
46
|
+
kind of thing you want to automate.
|
|
47
|
+
2. Starting an Appium session on the built-in Android settings app.
|
|
48
|
+
3. Finding the "Apps" list item and clicking it.
|
|
49
|
+
4. Pausing for a moment purely for visual effect.
|
|
50
|
+
5. Ending the Appium session.
|
|
51
|
+
|
|
52
|
+
That's it! Let's give it a try. Before you run the test, make sure that you have an Appium server
|
|
53
|
+
running in another terminal session, otherwise you'll get an error about not being able to connect
|
|
54
|
+
to one. Then, you can execute the script:
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
python test.py
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
If all goes well, you'll see the Settings app open up and navigate to the "Apps" view before the
|
|
61
|
+
app closes again.
|
|
62
|
+
|
|
63
|
+
Congratulations, you've started your Appium journey! Read on for some [next steps](./next-steps.md) to explore.
|