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,219 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Appium Drivers
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
You can't use Appium without a driver! Here you can find a list of all known Appium drivers,
|
|
6
|
+
along with their installation commands and links to their documentation.
|
|
7
|
+
|
|
8
|
+
To learn more about drivers, check out the [Driver Intro](../intro/drivers.md).
|
|
9
|
+
|
|
10
|
+
!!! note
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
If you maintain an Appium driver that you would like to be listed here, feel free to create a PR!
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Official Drivers
|
|
17
|
+
|
|
18
|
+
These drivers are currently maintained by the Appium team:
|
|
19
|
+
|
|
20
|
+
### [Chromium](https://github.com/appium/appium-chromium-driver)
|
|
21
|
+
|
|
22
|
+
- Target: Desktop and mobile Chromium browsers (Chrome, Microsoft Edge, etc.)
|
|
23
|
+
- Mode: Web
|
|
24
|
+
|
|
25
|
+
```sh title="Install This Driver"
|
|
26
|
+
appium driver install chromium
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### [Espresso](https://github.com/appium/appium-espresso-driver)
|
|
30
|
+
|
|
31
|
+
- Target: Android applications
|
|
32
|
+
- Mode: Native
|
|
33
|
+
|
|
34
|
+
```sh title="Install This Driver"
|
|
35
|
+
appium driver install espresso
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### [Gecko](https://github.com/appium/appium-geckodriver)
|
|
39
|
+
|
|
40
|
+
- Target: Desktop and mobile Gecko browsers (Firefox)
|
|
41
|
+
- Mode: Web
|
|
42
|
+
|
|
43
|
+
```sh title="Install This Driver"
|
|
44
|
+
appium driver install gecko
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### [Mac2](https://github.com/appium/appium-mac2-driver)
|
|
48
|
+
|
|
49
|
+
- Target: macOS applications
|
|
50
|
+
- Mode: Native
|
|
51
|
+
|
|
52
|
+
```sh title="Install This Driver"
|
|
53
|
+
appium driver install mac2
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### [Safari](https://github.com/appium/appium-safari-driver)
|
|
57
|
+
|
|
58
|
+
- Target: Desktop and mobile Safari browsers
|
|
59
|
+
- Mode: Web
|
|
60
|
+
|
|
61
|
+
```sh title="Install This Driver"
|
|
62
|
+
appium driver install safari
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### [UiAutomator2](https://github.com/appium/appium-uiautomator2-driver)
|
|
66
|
+
|
|
67
|
+
- Target: Android, Android TV, Android Wear applications
|
|
68
|
+
- Modes: Native, Hybrid, Web
|
|
69
|
+
|
|
70
|
+
```sh title="Install This Driver"
|
|
71
|
+
appium driver install uiautomator2
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### [Windows](https://github.com/appium/appium-windows-driver)
|
|
75
|
+
|
|
76
|
+
!!! warning
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
Only the Node.js-based driver part is maintained by the Appium team. The server part
|
|
80
|
+
(WinAppDriver executable) is provided by Microsoft, but has not been maintained since 2022.
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
- Target: Windows applications
|
|
84
|
+
- Mode: Native
|
|
85
|
+
|
|
86
|
+
```sh title="Install This Driver"
|
|
87
|
+
appium driver install windows
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### [XCUITest](https://appium.github.io/appium-xcuitest-driver/)
|
|
91
|
+
|
|
92
|
+
- Target: iOS, iPadOS, tvOS applications
|
|
93
|
+
- Modes: Native, Hybrid, Web
|
|
94
|
+
|
|
95
|
+
```sh title="Install This Driver"
|
|
96
|
+
appium driver install xcuitest
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## Other Drivers
|
|
100
|
+
|
|
101
|
+
These drivers are not maintained by the Appium team and can be used to target other platforms:
|
|
102
|
+
|
|
103
|
+
### [Flutter](https://github.com/appium/appium-flutter-driver)
|
|
104
|
+
|
|
105
|
+
- Target: iOS and Android applications built with Flutter
|
|
106
|
+
- Mode: Native
|
|
107
|
+
- Supported by: Appium Team / Community
|
|
108
|
+
|
|
109
|
+
```sh title="Install This Driver"
|
|
110
|
+
appium driver install --source=npm appium-flutter-driver
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### [Flutter Integration](https://github.com/AppiumTestDistribution/appium-flutter-integration-driver)
|
|
114
|
+
|
|
115
|
+
- Target: iOS and Android applications built with Flutter
|
|
116
|
+
- Mode: Native
|
|
117
|
+
- Supported by: Community / `@AppiumTestDistribution`
|
|
118
|
+
|
|
119
|
+
```sh title="Install This Driver"
|
|
120
|
+
appium driver install --source=npm appium-flutter-integration-driver
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
### [LG WebOS](https://github.com/headspinio/appium-lg-webos-driver)
|
|
124
|
+
|
|
125
|
+
- Target: LG TV web applications
|
|
126
|
+
- Mode: Web
|
|
127
|
+
- Supported by: HeadSpin
|
|
128
|
+
|
|
129
|
+
```sh title="Install This Driver"
|
|
130
|
+
appium driver install --source=npm appium-lg-webos-driver
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### [Linux](https://github.com/fantonglang/appium-linux-driver)
|
|
134
|
+
|
|
135
|
+
!!! warning
|
|
136
|
+
|
|
137
|
+
```
|
|
138
|
+
This driver has not been maintained since 2022 and requires a custom Appium installation
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
- Target: Linux applications
|
|
142
|
+
- Mode: Native
|
|
143
|
+
- Supported by: `@fantonglang`
|
|
144
|
+
|
|
145
|
+
```sh title="Install This Driver"
|
|
146
|
+
git clone https://github.com/fantonglang/appium
|
|
147
|
+
cd appium
|
|
148
|
+
yarn install
|
|
149
|
+
node ./
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
### [NovaWindows](https://github.com/AutomateThePlanet/appium-novawindows-driver)
|
|
153
|
+
|
|
154
|
+
!!! info
|
|
155
|
+
|
|
156
|
+
```
|
|
157
|
+
This driver is recommended as a drop-in replacement for the partially unmaintained
|
|
158
|
+
[Windows driver](#windows)
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
- Target: Windows applications
|
|
162
|
+
- Mode: Native
|
|
163
|
+
- Supported by: Community / Automate The Planet
|
|
164
|
+
|
|
165
|
+
```sh title="Install This Driver"
|
|
166
|
+
appium driver install --source=npm appium-novawindows-driver
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### [Roku](https://github.com/headspinio/appium-roku-driver)
|
|
170
|
+
|
|
171
|
+
- Target: Roku channels (applications)
|
|
172
|
+
- Mode: Native
|
|
173
|
+
- Supported by: HeadSpin
|
|
174
|
+
|
|
175
|
+
```sh title="Install This Driver"
|
|
176
|
+
appium driver install --source=npm @headspinio/appium-roku-driver
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
### [Tizen](https://github.com/Samsung/appium-tizen-driver)
|
|
180
|
+
|
|
181
|
+
!!! warning
|
|
182
|
+
|
|
183
|
+
```
|
|
184
|
+
This driver has not been maintained since 2020 and is only compatible with Appium 1
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
- Target: Tizen applications
|
|
188
|
+
- Mode: Native
|
|
189
|
+
- Supported by: Community / Samsung
|
|
190
|
+
|
|
191
|
+
```sh title="Install This Driver"
|
|
192
|
+
npm install appium-tizen-driver
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
### [TizenTV](https://github.com/headspinio/appium-tizen-tv-driver)
|
|
196
|
+
|
|
197
|
+
- Target: Tizen TV web applications
|
|
198
|
+
- Mode: Web
|
|
199
|
+
- Supported by: HeadSpin
|
|
200
|
+
|
|
201
|
+
```sh title="Install This Driver"
|
|
202
|
+
appium driver install --source=npm appium-tizen-tv-driver
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
### [You.i Engine](https://github.com/YOU-i-Labs/appium-youiengine-driver)
|
|
206
|
+
|
|
207
|
+
!!! warning
|
|
208
|
+
|
|
209
|
+
```
|
|
210
|
+
This driver has not been maintained since 2022 and is only compatible with Appium 1
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
- Target: iOS, Android, macOS, Linux, tvOS applications built with You.i Engine
|
|
214
|
+
- Mode: Native
|
|
215
|
+
- Supported by: Community / You.i
|
|
216
|
+
|
|
217
|
+
```sh title="Install This Driver"
|
|
218
|
+
npm install appium-youiengine-driver
|
|
219
|
+
```
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
hide:
|
|
3
|
+
- toc
|
|
4
|
+
|
|
5
|
+
title: The Appium Ecosystem
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
Appium has a wide ecosystem of related software and tools. This section of the Appium documentation
|
|
9
|
+
aims to compile a listing of various officially-supported and community-supported Appium projects:
|
|
10
|
+
|
|
11
|
+
<div class="grid cards" markdown>
|
|
12
|
+
|
|
13
|
+
- :material-car: **Drivers**
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
Link Appium to your test device
|
|
18
|
+
|
|
19
|
+
[:octicons-arrow-right-24: View all drivers](./drivers.md)
|
|
20
|
+
|
|
21
|
+
- :octicons-code-16: **Clients**
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
Link Appium to your automation code
|
|
26
|
+
|
|
27
|
+
[:octicons-arrow-right-24: View all clients](./clients.md)
|
|
28
|
+
|
|
29
|
+
- :fontawesome-solid-plug: **Plugins**
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
Modify and extend Appium functionality
|
|
34
|
+
|
|
35
|
+
[:octicons-arrow-right-24: View all plugins](./plugins.md)
|
|
36
|
+
|
|
37
|
+
- :material-wrench: **Tools**
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
Interact with Appium in other ways
|
|
42
|
+
|
|
43
|
+
[:octicons-arrow-right-24: View all tools](./tools.md)
|
|
44
|
+
|
|
45
|
+
</div>
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Appium Plugins
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Plugins offer various ways to extend or modify Appium's behaviour. They are _completely optional_
|
|
6
|
+
and are not needed for standard automation functionality, but you may find them to be useful
|
|
7
|
+
for more specialised automation workflows.
|
|
8
|
+
|
|
9
|
+
!!! note
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
If you maintain an Appium plugin that you would like to be listed here, feel free to create a PR!
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Official Plugins
|
|
16
|
+
|
|
17
|
+
These plugins are are currently maintained by the Appium team:
|
|
18
|
+
|
|
19
|
+
### [Execute Driver](https://github.com/appium/appium/tree/master/packages/execute-driver-plugin)
|
|
20
|
+
|
|
21
|
+
Run entire batches of commands in a single call to the Appium server
|
|
22
|
+
|
|
23
|
+
```sh title="Install This Plugin"
|
|
24
|
+
appium plugin install execute-driver
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### [Images](https://github.com/appium/appium/tree/master/packages/images-plugin)
|
|
28
|
+
|
|
29
|
+
Add support for image matching and comparison features
|
|
30
|
+
|
|
31
|
+
```sh title="Install This Plugin"
|
|
32
|
+
appium plugin install images
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### [Inspector](https://github.com/appium/appium-inspector/tree/main/plugins)
|
|
36
|
+
|
|
37
|
+
Integrate the [Appium Inspector](https://appium.github.io/appium-inspector/) directly into your
|
|
38
|
+
Appium server installation
|
|
39
|
+
|
|
40
|
+
```sh title="Install This Plugin"
|
|
41
|
+
appium plugin install inspector
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### [Relaxed Caps](https://github.com/appium/appium/tree/master/packages/relaxed-caps-plugin)
|
|
45
|
+
|
|
46
|
+
Relax Appium's requirement for vendor prefixes on capabilities
|
|
47
|
+
|
|
48
|
+
```sh title="Install This Plugin"
|
|
49
|
+
appium plugin install relaxed-caps
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### [Storage](https://github.com/appium/appium/tree/master/packages/storage-plugin)
|
|
53
|
+
|
|
54
|
+
Add server-side storage with client-side management
|
|
55
|
+
|
|
56
|
+
```sh title="Install This Plugin"
|
|
57
|
+
appium plugin install storage
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### [Universal XML](https://github.com/appium/appium/tree/master/packages/universal-xml-plugin)
|
|
61
|
+
|
|
62
|
+
Translate the default iOS and Android XML formats into a common format
|
|
63
|
+
|
|
64
|
+
```sh title="Install This Plugin"
|
|
65
|
+
appium plugin install universal-xml
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Other Plugins
|
|
69
|
+
|
|
70
|
+
These plugins are not maintained by the Appium team and can provide additional functionality:
|
|
71
|
+
|
|
72
|
+
### [AltUnity](https://github.com/headspinio/appium-altunity-plugin)
|
|
73
|
+
|
|
74
|
+
Target Unity games and apps for automation via the AltUnityTester framework
|
|
75
|
+
|
|
76
|
+
Supported by: HeadSpin
|
|
77
|
+
|
|
78
|
+
```sh title="Install This Plugin"
|
|
79
|
+
appium plugin install --source=npm appium-altunity-plugin
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### [Device Farm](https://github.com/AppiumTestDistribution/appium-device-farm)
|
|
83
|
+
|
|
84
|
+
Manage and create driver sessions on connected Android devices and iOS simulators
|
|
85
|
+
|
|
86
|
+
Supported by: `@AppiumTestDistribution`
|
|
87
|
+
|
|
88
|
+
```sh title="Install This Plugin"
|
|
89
|
+
appium plugin install --source=npm appium-device-farm
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### [Gestures](https://github.com/AppiumTestDistribution/appium-gestures-plugin)
|
|
93
|
+
|
|
94
|
+
Perform basic gestures using W3C Actions
|
|
95
|
+
|
|
96
|
+
Supported by: `@AppiumTestDistribution`
|
|
97
|
+
|
|
98
|
+
```sh title="Install This Plugin"
|
|
99
|
+
appium plugin install --source=npm appium-gestures-plugin
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### [Interceptor](https://github.com/AppiumTestDistribution/appium-interceptor-plugin)
|
|
103
|
+
|
|
104
|
+
Intercept and mock API requests and responses
|
|
105
|
+
|
|
106
|
+
Supported by: `@AppiumTestDistribution`
|
|
107
|
+
|
|
108
|
+
```sh title="Install This Plugin"
|
|
109
|
+
appium plugin install --source=npm appium-interceptor
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### [OCR](https://github.com/jlipps/appium-ocr-plugin)
|
|
113
|
+
|
|
114
|
+
Find elements via OCR text
|
|
115
|
+
|
|
116
|
+
Supported by: `@jlipps`
|
|
117
|
+
|
|
118
|
+
```sh title="Install This Plugin"
|
|
119
|
+
appium plugin install --source=npm appium-ocr-plugin
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### [Reporter](https://github.com/AppiumTestDistribution/appium-reporter-plugin)
|
|
123
|
+
|
|
124
|
+
Generate standalone consolidated HTML reports with screenshots
|
|
125
|
+
|
|
126
|
+
Supported by: `@AppiumTestDistribution`
|
|
127
|
+
|
|
128
|
+
```sh title="Install This Plugin"
|
|
129
|
+
appium plugin install --source=npm appium-reporter-plugin
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### [Wait](https://github.com/AppiumTestDistribution/appium-wait-plugin)
|
|
133
|
+
|
|
134
|
+
Manage global element wait timeouts
|
|
135
|
+
|
|
136
|
+
Supported by: `@AppiumTestDistribution`
|
|
137
|
+
|
|
138
|
+
```sh title="Install This Plugin"
|
|
139
|
+
appium plugin install --source=npm appium-wait-plugin
|
|
140
|
+
```
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Appium-Related Tools
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
The Appium ecosystem also includes several tools that have been created to assist with things not
|
|
6
|
+
directly related to running tests, such as Appium installation, test development, and more.
|
|
7
|
+
|
|
8
|
+
!!! note
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
If you maintain an Appium tool that you would like to be listed here, feel free to create a PR!
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Official Tools
|
|
15
|
+
|
|
16
|
+
These tools are currently maintained by the Appium team:
|
|
17
|
+
|
|
18
|
+
### [Appium Inspector](https://appium.github.io/appium-inspector/)
|
|
19
|
+
|
|
20
|
+
Appium has a graphical client which can be used to inspect application screenshots, view the
|
|
21
|
+
application hierarchy, search for elements, run Appium commands, record app interactions, and more.
|
|
22
|
+
It can be very useful for Appium test development.
|
|
23
|
+
|
|
24
|
+
## Extension Tools
|
|
25
|
+
|
|
26
|
+
Appium driver or plugin developers can choose to include these tools in their driver/plugin:
|
|
27
|
+
|
|
28
|
+
### Appium Doctor
|
|
29
|
+
|
|
30
|
+
The Appium Doctor tool can be used to validate whether all prerequisites and other environment
|
|
31
|
+
details needed for the driver/plugin have been set up correctly. The tool can be accessed via the
|
|
32
|
+
[`doctor` command in the Appium CLI](../reference/cli/extensions.md#doctor):
|
|
33
|
+
|
|
34
|
+
```sh
|
|
35
|
+
appium {driver|plugin} doctor <extension-name>
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
It shows no results if the driver/plugin author did not implement Doctor support.
|
|
39
|
+
|
|
40
|
+
!!! note
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
If you maintain an Appium extension and would like to add Appium Doctor support for it, check
|
|
44
|
+
out the documentation on [Building Doctor Checks](../developing/build-doctor-checks.md).
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Other Tools
|
|
48
|
+
|
|
49
|
+
These tools are not maintained by the Appium team:
|
|
50
|
+
|
|
51
|
+
### [Appium Installer](https://github.com/AppiumTestDistribution/appium-installer)
|
|
52
|
+
|
|
53
|
+
Appium Installer is a command-line tool for simplifying setups of new Appium test environments.
|
|
54
|
+
It includes commands for installing Appium, its drivers and plugins, as well as validating
|
|
55
|
+
prerequisites for iOS or Android emulators or real devices.
|
|
56
|
+
|
|
57
|
+
Supported by: `@AppiumTestDistribution`
|
|
58
|
+
|
|
59
|
+
```sh title="Install This Tool"
|
|
60
|
+
npm install -g appium-installer
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### [Jarvis Appium](https://github.com/AppiumTestDistribution/mcp-appium)
|
|
64
|
+
|
|
65
|
+
Jarvis Appium is a Model Context Protocol (MCP) server that provides mobile test development and
|
|
66
|
+
automation capabilities using Appium.
|
|
67
|
+
|
|
68
|
+
Supported by: `@AppiumTestDistribution`
|
|
69
|
+
|
|
70
|
+
```json title="Install This Tool"
|
|
71
|
+
// Add the following to your MCP client configuration
|
|
72
|
+
{
|
|
73
|
+
"mcpServers": {
|
|
74
|
+
"jarvis-appium": {
|
|
75
|
+
"disabled": false,
|
|
76
|
+
"timeout": 100,
|
|
77
|
+
"type": "stdio",
|
|
78
|
+
"command": "npx",
|
|
79
|
+
"args": ["jarvis-appium"],
|
|
80
|
+
"env": {
|
|
81
|
+
"ANDROID_HOME": "/path/to/android/sdk",
|
|
82
|
+
"CAPABILITIES_CONFIG": "/path/to/your/capabilities.json"
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
```
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Local Validation Of Extension PRs
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Sometimes it might be necessary to validate if a remote driver or a plugin PR works for the particular local
|
|
6
|
+
environment before it is merged or published. This tutorial describes how to achieve that.
|
|
7
|
+
|
|
8
|
+
## Requirements
|
|
9
|
+
|
|
10
|
+
- Recent LTS version of NodeJS. Check [Node.js main page](https://nodejs.org) for the download link.
|
|
11
|
+
- Recent version of the Appium server. Use the following commands to ensure you have
|
|
12
|
+
the latest version installed: `npm uninstall appium` and `npm install -g appium`.
|
|
13
|
+
- [Git](https://git-scm.com/) should be available locally.
|
|
14
|
+
|
|
15
|
+
## Installation
|
|
16
|
+
|
|
17
|
+
- [Check out](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/checking-out-pull-requests-locally) the PR locally.
|
|
18
|
+
There is also an option (although it is less flexible, because you won't be able to easily fetch
|
|
19
|
+
any changes to this PR later) to simply [download](https://docs.github.com/en/repositories/working-with-files/using-files/downloading-source-code-archives) and unzip the sources
|
|
20
|
+
locally. If you choose the later option then no `git` tool would be necessary.
|
|
21
|
+
- Navigate to the local driver or plugin folder and run `npm i` from that folder.
|
|
22
|
+
- Make sure you don't have the given driver or plugin already installed. Use the `appium driver uninstall <driver_name>`
|
|
23
|
+
or `appium plugin uninstall <plugin_name>` CLI in order to delete any leftovers. The value of
|
|
24
|
+
`<driver_name>`/`<plugin_name>` depends on the actual driver or plugin name the PR has been prepared for.
|
|
25
|
+
If you are not sure which name you need to use then check the content of the `package.json` manifest,
|
|
26
|
+
which must be always located under the root folder of the fetched sources. You should be looking for
|
|
27
|
+
the `"appium" -> "driverName"` entry value there.
|
|
28
|
+
- Change the current folder to the one, which is NOT the driver/plugin folder root or its subfolder.
|
|
29
|
+
Also, make sure your current working folder does not contain any extra `package.json` file. If
|
|
30
|
+
it does then simply navigate to any other folder that does not.
|
|
31
|
+
- Run the following command in order to link the driver/plugin sources to the Appium server:
|
|
32
|
+
`appium driver install --source=local <full_path_to_driver_folder_with_fetched_sources>` or
|
|
33
|
+
`appium plugin install --source=local <full_path_to_plugin_folder_with_fetched_sources>`.
|
|
34
|
+
- Stop the Appium server if it is running and start it again (`appium server --use-drivers=<driver_name>`)
|
|
35
|
+
to check the list of loaded drivers. If the linking succeeded then you must see the driver name and the path to its
|
|
36
|
+
parent folder in the server logs. In case of a plugin it is required to explicitly request
|
|
37
|
+
this plugin to be loaded upon server startup: `appium server --use-plugins=<plugin_name>`.
|
|
38
|
+
|
|
39
|
+
## Update
|
|
40
|
+
|
|
41
|
+
After you have tested the PR and there are issues it might be necessary to update the local branch with
|
|
42
|
+
the recent changes from Git. Follow the next steps for that:
|
|
43
|
+
|
|
44
|
+
- Navigate to the parent folder of your local driver/plugin and run `git pull`.
|
|
45
|
+
- Stop Appium server if it is running.
|
|
46
|
+
- Run `npm i` in the parent folder of your local driver/plugin to rebuild it and update any dependencies if necessary.
|
|
47
|
+
- Start Appium server again similarly to how this is done in the corresponding [Installation](#installation) step above.
|
|
48
|
+
|
|
49
|
+
## Switching Back To a Stable Release
|
|
50
|
+
|
|
51
|
+
After the PR is merged there is no need to use the local plugin/driver deployment anymore, and it makes sense
|
|
52
|
+
to switch back to the package managed by NPM. Follow the next steps for that:
|
|
53
|
+
|
|
54
|
+
- Unlink the installed driver/plugin from the server by running `appium driver uninstall <driver_name>` or
|
|
55
|
+
`appium plugin uninstall <driver_name>`.
|
|
56
|
+
- Delete the local source folder (`rm -rf <full_path_to_plugin_or_driver_folder_with_fetched_sources>`).
|
|
57
|
+
- Install the driver or the plugin from NPM. Check the component README in order to find a proper command for that.
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Caching of Application Bundles
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Appium's base driver provides a feature which enables caching of application builds provided, for example,
|
|
6
|
+
as `app` capability value or to endpoints similar to the `installApp` one. This article explains common caching
|
|
7
|
+
principles, so you could create more performant and efficient test suite execution strategies.
|
|
8
|
+
|
|
9
|
+
## Why Caching Is Necessary
|
|
10
|
+
|
|
11
|
+
Mobile application bundles could reach hundreds of megabytes is size. This could become a serious
|
|
12
|
+
performance issue if a test suite is executed, and it is necessary to fetch/extract the same application
|
|
13
|
+
bundle for each test.
|
|
14
|
+
|
|
15
|
+
## What Is Cached
|
|
16
|
+
|
|
17
|
+
Caching could be applied to application bundles generated by
|
|
18
|
+
[`configureApp`](https://github.com/appium/appium/blob/master/packages/base-driver/lib/basedriver/helpers.js#L107) helper call.
|
|
19
|
+
Inherited drivers can customize their caching logic by providing own `onPostProcess`
|
|
20
|
+
(or both `inDownload` and `onPostProcess`) property definition, but the general
|
|
21
|
+
rule of thumb is that we need to cache locally all application bundles need to be downloaded and/or extracted
|
|
22
|
+
first before they could be actually installed on the device under test. On iOS, for example, these are `.ipa` or
|
|
23
|
+
`.zip` compressed application bundles, or .`aab` on Android.
|
|
24
|
+
|
|
25
|
+
## Caching of Remote Application Bundles
|
|
26
|
+
|
|
27
|
+
In order to validate whether an app bundle downloaded from the given URL could be (re)used from the cache the following
|
|
28
|
+
steps are applied:
|
|
29
|
+
|
|
30
|
+
1. The script checks if the given URL is already present in the cache.
|
|
31
|
+
If yes then it tries to fetch previously remembered
|
|
32
|
+
[Last-Modified](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Last-Modified)
|
|
33
|
+
or [ETag](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ETag) header values for it.
|
|
34
|
+
2. If `ETag` value is present then it is put into
|
|
35
|
+
[If-None-Match request header](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-None-Match).
|
|
36
|
+
Else if `Last-Modified` header value is present then it is put into
|
|
37
|
+
[If-Modified-Since request header](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-Modified-Since).
|
|
38
|
+
Otherwise, no caching is applied.
|
|
39
|
+
3. If the response status is equal to `304` then the previously cached binary is used,
|
|
40
|
+
otherwise the cached entry is reset and refreshed.
|
|
41
|
+
|
|
42
|
+
## Caching of Local Application Bundles
|
|
43
|
+
|
|
44
|
+
It only makes sense to cache application bundles if they need some preprocessing before being installed on the device under test.
|
|
45
|
+
For example, on iOS `.ipa` bundles must be unzipped, because the system installer only works with `.app` folders.
|
|
46
|
+
|
|
47
|
+
1. The script verifies if the given bundle path is already present in the cache. If the bundle was not in the cache yet
|
|
48
|
+
then it gets preprocessed and added there.
|
|
49
|
+
2. The script validates the hashsum of the bundle and compares it to the previously stored one. If hash sums don't match
|
|
50
|
+
then the cached item gets deleted and the preprocessing of the bundle repeats.
|
|
51
|
+
|
|
52
|
+
## How The Cache File System Is Configured
|
|
53
|
+
|
|
54
|
+
The cache where the base driver keeps all application bundles is located in the system temp folder. It is configured
|
|
55
|
+
on per-process basis, so each test session initialized in scope of the same Appium server process takes advantages
|
|
56
|
+
of it. It is a [LRU Cache](https://www.npmjs.com/package/lru-cache) with the following limitations:
|
|
57
|
+
|
|
58
|
+
- Max items: 1024. You may customize it by providing a new value to
|
|
59
|
+
the [APPIUM_APPS_CACHE_MAX_ITEMS](../reference/cli/env-vars.md) environment variable.
|
|
60
|
+
Do not set it to a lower number than the amount of apps in all parallel sessions per process.
|
|
61
|
+
- Max time to live (TTL) for each entry: 24 hours.
|
|
62
|
+
You may customize it by providing a new value to the
|
|
63
|
+
[APPIUM_APPS_CACHE_MAX_AGE](../reference/cli/env-vars.md) environment variable.
|
|
64
|
+
Do not set it to a lower number than the duration of a single session startup.
|
|
65
|
+
- TTL is refreshed for each entry upon access
|
|
66
|
+
- By default the full application URL is used as cache key. You may change this behavior
|
|
67
|
+
by enabling the [APPIUM_APPS_CACHE_IGNORE_URL_QUERY](../reference/cli/env-vars.md) environment variable.
|
|
68
|
+
If the above option is enabled then the 'search' part of the app URL will be cut off from cache keys.
|
|
69
|
+
See the corresponding [feature request](https://discuss.appium.io/t/regarding-app-caching-when-using-aws-s3-presigned-urls/42713)
|
|
70
|
+
for more details.
|
|
71
|
+
|
|
72
|
+
!!! warning
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
Note: The cache root folder is set up for automatic deletion on Appium process termination. This would only
|
|
76
|
+
work if Appium server is killed with `SIGINT` or `SIGTERM`. If `SIGKILL` is used then no cache cleanup
|
|
77
|
+
would be performed.
|
|
78
|
+
```
|