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,137 @@
|
|
|
1
|
+
---
|
|
2
|
+
hide:
|
|
3
|
+
- navigation
|
|
4
|
+
|
|
5
|
+
title: Installation
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
Like all Appium drivers, the XCUITest driver requires Appium to be installed. Refer to the
|
|
9
|
+
[Appium documentation](https://appium.io/docs/en/latest/quickstart/install/) for its requirements
|
|
10
|
+
and prerequisites.
|
|
11
|
+
|
|
12
|
+
!!! info
|
|
13
|
+
|
|
14
|
+
XCUITest driver `10.0.0` or later requires Appium 3, and no longer supports Appium 2. For more
|
|
15
|
+
details, refer to the [Appium Server Support](#appium-server-support) section.
|
|
16
|
+
|
|
17
|
+
## Install the Driver
|
|
18
|
+
|
|
19
|
+
Once Appium has been installed, you can use the [extension CLI](https://appium.io/docs/en/latest/cli/extensions/)
|
|
20
|
+
to install the XCUITest driver:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
appium driver install xcuitest
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Alternatively, if you are running a Node.js project, you can include `appium-xcuitest-driver` as
|
|
27
|
+
one of your project dependencies. [Refer to the Appium documentation](https://appium.io/docs/en/latest/guides/managing-exts/#do-it-yourself-with-npm)
|
|
28
|
+
for more information about this approach.
|
|
29
|
+
|
|
30
|
+
## Load the Driver
|
|
31
|
+
|
|
32
|
+
To activate the driver, simply launch the Appium server. By default, Appium will load all the
|
|
33
|
+
installed drivers:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
appium
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
The server log output should include a line like the following:
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
[Appium] XCUITestDriver has been successfully loaded in 0.789s
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Once the driver has been loaded, you can continue with [device preparation](../preparation/index.md).
|
|
46
|
+
|
|
47
|
+
## System Requirements
|
|
48
|
+
|
|
49
|
+
!!! note
|
|
50
|
+
|
|
51
|
+
Many of the below requirements can be validated after installing the driver, via the built-in
|
|
52
|
+
Appium Doctor support:
|
|
53
|
+
```
|
|
54
|
+
appium driver doctor xcuitest
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
- macOS host platform
|
|
58
|
+
- Xcode and Xcode Developer Tools
|
|
59
|
+
- Make sure to install an Xcode version that supports the iOS/iPadOS/tvOS version you want to test.
|
|
60
|
+
Different Xcode versions also have different macOS host version requirements. For more details,
|
|
61
|
+
refer to the [Xcode Release Notes](https://developer.apple.com/documentation/xcode-release-notes/).
|
|
62
|
+
- New major Xcode versions (especially beta) will likely require you to also update the driver. See the
|
|
63
|
+
[iOS Version Support](#ios-version-support) section for details.
|
|
64
|
+
- If automating real devices, additional manual configuration is required - please refer to the
|
|
65
|
+
[Real Device Configuration](../preparation/real-device-config.md) guide.
|
|
66
|
+
- If testing web or hybrid apps, their webviews must be debuggable. If it is not possible to connect to your
|
|
67
|
+
webview(s) using [Safari remote debugger](https://appletoolbox.com/use-web-inspector-debug-mobile-safari/),
|
|
68
|
+
then the driver will not be able to identify them.
|
|
69
|
+
|
|
70
|
+
### Optional Requirements
|
|
71
|
+
|
|
72
|
+
- [`xcpretty`](https://github.com/supermarin/xcpretty) can be used to make Xcode output easier to
|
|
73
|
+
read. It can be installed by running `gem install xcpretty`.
|
|
74
|
+
- [`ffmpeg`](https://ffmpeg.org/) is used for test video recording. It can be installed using
|
|
75
|
+
[`brew`](https://brew.sh/): `brew install ffmpeg`
|
|
76
|
+
- [`idb`](https://github.com/facebook/idb), [`go-ios`](https://github.com/danielpaulus/go-ios) and
|
|
77
|
+
[`tidevice`](https://github.com/alibaba/taobao-iphone-device) can be used to improve device interactions
|
|
78
|
+
- [WIX AppleSimulatorUtils](https://github.com/wix/AppleSimulatorUtils) can be used to improve some
|
|
79
|
+
Simulator interactions
|
|
80
|
+
- [`py-ios-device`](https://github.com/YueChen-C/py-ios-device) is required in several `mobile:`
|
|
81
|
+
extensions, and can improve the general testing experience for real devices
|
|
82
|
+
|
|
83
|
+
## Appium Server Support
|
|
84
|
+
|
|
85
|
+
If you are running an older version of Appium, make sure to install a supported driver version:
|
|
86
|
+
|
|
87
|
+
| Appium server version | Supported XCUITest driver versions |
|
|
88
|
+
| --- | --- |
|
|
89
|
+
| Appium 3 | `>= 10.0.0` |
|
|
90
|
+
| Appium 2 | `4.0.0 - 9.10.5` |
|
|
91
|
+
| Appium 1 | `<= 3.62.0` (bundled with Appium) |
|
|
92
|
+
|
|
93
|
+
## iOS Version Support
|
|
94
|
+
|
|
95
|
+
Different driver versions support different ranges of iOS/iPadOS/tvOS versions. The following tables
|
|
96
|
+
should help you decide which driver version to install. If you are upgrading/downgrading an
|
|
97
|
+
existing installation, check that the [WebDriverAgent (WDA)](https://github.com/appium/WebDriverAgent)
|
|
98
|
+
version on the device under test is also updated accordingly.
|
|
99
|
+
|
|
100
|
+
For iOS/tvOS support in driver versions older than `4.0.0` (Appium 1), please refer to
|
|
101
|
+
[the Appium 1 changelog](https://github.com/appium/appium/blob/1.x/CHANGELOG.md).
|
|
102
|
+
|
|
103
|
+
!!! info "Background"
|
|
104
|
+
|
|
105
|
+
The XCUITest driver depends on the [WebDriverAgent (WDA)](https://github.com/appium/WebDriverAgent)
|
|
106
|
+
framework, which in turn [relies on Apple's XCTest framework](../overview.md). Changes in the
|
|
107
|
+
XCTest API are published in new Xcode and Apple device OS versions. These API changes may
|
|
108
|
+
add new features that the driver must implement in order to support the latest devices, as well
|
|
109
|
+
as modify or even remove support for existing features that the driver relies on. In both cases,
|
|
110
|
+
new driver and WDA versions are required.
|
|
111
|
+
|
|
112
|
+
Generally, the driver/WDA aims to support the latest _two_ (2) major Xcode/iOS/iPadOS/tvOS versions,
|
|
113
|
+
but may also work with older versions, unless specified below.
|
|
114
|
+
|
|
115
|
+
The following are the minimum driver/WDA versions required for specific Xcode/iOS versions:
|
|
116
|
+
|
|
117
|
+
| Xcode/iOS version | Minimum XCUITest driver & WDA version |
|
|
118
|
+
| --- | --- |
|
|
119
|
+
| Xcode 26 / iOS 26 | `9.5.0` (WDA `9.14.1`) |
|
|
120
|
+
| Xcode 16-beta.5 / iOS 18 | `7.24.15` (WDA `8.9.1`) |
|
|
121
|
+
| Xcode 15 / iOS 17 | `4.32.23` (WDA `5.6.0`) |
|
|
122
|
+
| Xcode 14.3 / iOS 16.4 | `4.21.7` (WDA `4.13.1`) |
|
|
123
|
+
| Xcode 14-beta.3 / iOS 16 Beta | `4.7.4` (WDA `4.8.1`) |
|
|
124
|
+
|
|
125
|
+
The following are the last driver versions that are compatible with older Xcode versions:
|
|
126
|
+
|
|
127
|
+
| Xcode version | Last supported XCUITest driver version |
|
|
128
|
+
| --- | --- |
|
|
129
|
+
| Xcode 12 | `4.27.2` (WDA `4.15.1`) |
|
|
130
|
+
| Xcode 11 | `4.2.0` (WDA `4.0.0`) |
|
|
131
|
+
|
|
132
|
+
The following are the last driver versions that are compatible with older iOS versions:
|
|
133
|
+
|
|
134
|
+
| iOS version | Last supported XCUITest driver version |
|
|
135
|
+
| --- | --- |
|
|
136
|
+
| iOS 9 - iOS 14 | `4.27.2` (WDA `4.15.1`) |
|
|
137
|
+
| iOS 8 | `4.2.0` (WDA `4.0.0`) |
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
hide:
|
|
3
|
+
- navigation
|
|
4
|
+
- toc
|
|
5
|
+
|
|
6
|
+
title: Overview
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
The XCUITest driver combines several different technologies to achieve its functionality:
|
|
10
|
+
|
|
11
|
+
- Native testing is based on Apple's [XCTest](https://developer.apple.com/documentation/xctest) framework
|
|
12
|
+
and Appium's fork of Facebook's [WebDriverAgent](https://github.com/appium/WebDriverAgent) server
|
|
13
|
+
(the [original](https://github.com/facebookarchive/WebDriverAgent) project is not supported anymore)
|
|
14
|
+
- In native mode, the driver operates in scope of [WebDriver W3C protocol](https://w3c.github.io/webdriver)
|
|
15
|
+
with several platform-specific extensions
|
|
16
|
+
- Webview communication is done via [Webkit remote debugger protocol](https://github.com/appium/appium-remote-debugger)
|
|
17
|
+
- In webview mode, the driver can only operate in scope of the obsolete [JSONWP protocol](https://webdriver.io/docs/api/jsonwp.html)
|
|
18
|
+
- Real device communication is provided by the [`appium-ios-device`](https://github.com/appium/appium-ios-device) library
|
|
19
|
+
- Simulator communication is provided by the [`appium-ios-simulator`](https://github.com/appium/appium-ios-simulator) library
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Device Preparation
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Before using the XCUITest driver with a simulator or real device, some device preparation is required.
|
|
6
|
+
|
|
7
|
+
## Automatic Adjustments
|
|
8
|
+
|
|
9
|
+
The XCUITest driver automatically adjusts some device preferences for testing purposes.
|
|
10
|
+
|
|
11
|
+
### Keyboard Configuration
|
|
12
|
+
|
|
13
|
+
Some keyboard preferences are changed in order to make test runs more stable. You can change some
|
|
14
|
+
of them via the [Settings API](https://appium.io/docs/en/latest/guides/settings/).
|
|
15
|
+
|
|
16
|
+
- _Settings -> General -> Keyboard -> Auto-Correction_ is turned OFF
|
|
17
|
+
- _Settings -> General -> Keyboard -> Predictive Text_ is turned OFF
|
|
18
|
+
- The keyboard tutorial is marked as complete
|
|
19
|
+
- (Simulator Only) Software keyboard is turned ON
|
|
20
|
+
|
|
21
|
+
## Manual Adjustments
|
|
22
|
+
|
|
23
|
+
Unfortunately, not all configuration can be done automatically, and some changes must be applied manually.
|
|
24
|
+
|
|
25
|
+
### Accessibility Settings
|
|
26
|
+
|
|
27
|
+
- To avoid miscalculation of element coordinates, please make sure the zoom preference is turned off
|
|
28
|
+
in _Settings -> Accessibility -> Zoom_.
|
|
29
|
+
- Some accessibility settings may expose additional view elements. Appium does not modify these
|
|
30
|
+
settings automatically, since they could affect the way your application under test performs.
|
|
31
|
+
Please change them manually if needed. Note that the available accessibility content depends on
|
|
32
|
+
the OS version.
|
|
33
|
+
- _Settings -> Accessibility -> Spoken Content -> Speak Selection_
|
|
34
|
+
|
|
35
|
+
### Webview Testing
|
|
36
|
+
|
|
37
|
+
- Webviews on iOS/iPadOS 16.4 or above may require additional configuration from the application developer.
|
|
38
|
+
Specifically, the destination `WKWebView` and/or `JSContext` component must have the
|
|
39
|
+
[`isInspectable`](https://developer.apple.com/documentation/webkit/wkwebview/4111163-isinspectable)
|
|
40
|
+
property set to `true`. Please read [the WebKit documentation page](https://webkit.org/blog/13936/enabling-the-inspection-of-web-content-in-apps/)
|
|
41
|
+
for more details on this property.
|
|
42
|
+
- WebViews on iOS/iPadOS below version 16.4 must have the [`get-task-allow` entitlement](https://developer.apple.com/documentation/bundleresources/entitlements/com_apple_security_cs_debugger) present as `true` in the application manifest.
|
|
43
|
+
- Starting from iOS/iPadOS 16.4, the Google Chrome browser also supports webview testing. This feature
|
|
44
|
+
requires Chrome version 115 or newer. Please read
|
|
45
|
+
[the Chrome Developer documentation page](https://developer.chrome.com/blog/debugging-chrome-on-ios/)
|
|
46
|
+
for details on the necessary configuration.
|
|
47
|
+
|
|
48
|
+
### Real Devices
|
|
49
|
+
|
|
50
|
+
Some settings are enabled by default on simulators, but need to be manually changed for real devices.
|
|
51
|
+
See the [Real Device Configuration](./real-device-config.md) document for details.
|
package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/prov-profile-basic-auto.md
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
---
|
|
2
|
+
hide:
|
|
3
|
+
- toc
|
|
4
|
+
|
|
5
|
+
title: Basic Automatic Configuration
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
If you have a paid Apple Developer account, the easiest way to create the provisioning profile is
|
|
9
|
+
to use the automatic configuration strategy. There are two ways to do this:
|
|
10
|
+
|
|
11
|
+
* Use the `xcodeOrgId` and `xcodeSigningId` [capabilities](../reference/capabilities.md):
|
|
12
|
+
```json
|
|
13
|
+
{
|
|
14
|
+
"appium:xcodeOrgId": "<Team ID>",
|
|
15
|
+
"appium:xcodeSigningId": "Apple Developer",
|
|
16
|
+
"appium:updatedWDABundleId": "<bundle id your provisioning profile can accept>"
|
|
17
|
+
}
|
|
18
|
+
```
|
|
19
|
+
* Create a `.xcconfig` file somewhere on your file system and add the following to it:
|
|
20
|
+
```ini
|
|
21
|
+
DEVELOPMENT_TEAM = <Team ID>
|
|
22
|
+
CODE_SIGN_IDENTITY = Apple Developer
|
|
23
|
+
```
|
|
24
|
+
Then use the `xcodeConfigFile` capability to specify the path to this file:
|
|
25
|
+
```json
|
|
26
|
+
{
|
|
27
|
+
"appium:xcodeConfigFile": "/path/to/xcconfig/file"
|
|
28
|
+
}
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Note that these are mutually exclusive strategies; use _either_ the `appium:xcodeConfigFile` capability
|
|
32
|
+
_or_ the combination of `appium:xcodeOrgId` and `appium:xcodeSigningId`.
|
|
33
|
+
|
|
34
|
+
* `appium:xcodeOrgId` / `DEVELOPMENT_TEAM` is a unique 10-character string generated by Apple that is
|
|
35
|
+
assigned to your team.
|
|
36
|
+
* To find this string (your Team ID), sign in to [developer.apple.com/account](https://developer.apple.com/account),
|
|
37
|
+
and click Membership in the sidebar. Your Team ID appears in the Membership Information
|
|
38
|
+
section under the team name. You can also find your Team ID listed under the "Organizational
|
|
39
|
+
Unit" field in your iPhone Developer certificate in your keychain.
|
|
40
|
+
* `appium:xcodeSigningId` / `CODE_SIGN_IDENTITY` is usually either `Apple Developer` or `iPhone Developer`.
|
|
41
|
+
* `appium:updatedWDABundleId` is the bundle id you would like to use for the built WebDriverAgent.
|
|
42
|
+
* Appium replaces the existing placeholder of `com.facebook.WebDriverAgentRunner` in `WebDriverAgent.xcodeproj` with the given capability value.
|
|
43
|
+
* `xcodebuild` adds `.xctrunner` automatically for XCTest package. Thus, the provisioning profile you're using should have the suffix explicitly, or it can be for bundle id which has `*`.
|
|
44
|
+
* For instance, when the `appium:updatedWDABundleId` is `io.appium.WebDriverAgentRunner`, the given provisioning profile should be for `io.appium.WebDriverAgentRunner.xctrunner`, `io.appium.WebDriverAgentRunner.*` or `*`.
|
|
45
|
+
* `appium:allowProvisioningDeviceRegistration` lets XCUITest driver set `-allowProvisioningUpdates` and `-allowProvisioningDeviceRegistration` flags for the `xcodebuild` command. They will help register the target device to the matched provisioning profile if it still doesn't have the device. Please check `man xcodebuild` output for more details.
|
|
46
|
+
|
|
47
|
+
Once this configuration is done, you should specify your real device UDID with the `udid` desired
|
|
48
|
+
capability, after which you should be able to start your test. Proceed with
|
|
49
|
+
[Validating the WDA Install](./real-device-config.md#validating-the-wda-install) for the next steps.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
hide:
|
|
3
|
+
- toc
|
|
4
|
+
|
|
5
|
+
title: Basic Manual Configuration
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
There are many cases in which the basic automatic configuration is not enough. Often this happens
|
|
9
|
+
when the development account being used is a "Free" one, in which case it is not possible to create
|
|
10
|
+
a wildcard provisioning profile.
|
|
11
|
+
|
|
12
|
+
You can confirm this by opening the WDA project in Xcode. The issue will manifest as something like
|
|
13
|
+
an error that Xcode failed to create provisioning profile:
|
|
14
|
+
|
|
15
|
+

|
|
16
|
+
|
|
17
|
+
The easiest way around this is to create a new project:
|
|
18
|
+
|
|
19
|
+

|
|
20
|
+
|
|
21
|
+
The type does not matter, other than it being "iOS". "Single View Application" is the easiest:
|
|
22
|
+
|
|
23
|
+

|
|
24
|
+
|
|
25
|
+
The important part is to use a unique "Product Name" and "Organization Name". Also, at this point,
|
|
26
|
+
specify your "Team".
|
|
27
|
+
|
|
28
|
+

|
|
29
|
+
|
|
30
|
+
You can confirm that the provisioning profile was created by looking at the "Project" tab:
|
|
31
|
+
|
|
32
|
+

|
|
33
|
+
|
|
34
|
+
Or by going into your account preferences and seeing the provisioning profile:
|
|
35
|
+
|
|
36
|
+

|
|
37
|
+
|
|
38
|
+
At this point you have a valid provisioning profile. Make note of the bundle identifier
|
|
39
|
+
you associated with it, and add that in the `updatedWDABundleId` capability for your tests.
|
|
40
|
+
Then follow the [initial instructions for automatic configuration](./prov-profile-basic-auto.md).
|
package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/prov-profile-full-manual.md
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
---
|
|
2
|
+
hide:
|
|
3
|
+
- toc
|
|
4
|
+
|
|
5
|
+
title: Full Manual Configuration
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
The provisioning profile can also be manually associated with the WDA project. Keep in mind that
|
|
9
|
+
this will have to be done each time WDA is updated (such as when updating the XCUITest driver),
|
|
10
|
+
and is _not_ recommended:
|
|
11
|
+
|
|
12
|
+
* In the terminal, open the directory where WDA is located. Run the following to set the project up:
|
|
13
|
+
```bash
|
|
14
|
+
mkdir -p Resources/WebDriverAgent.bundle
|
|
15
|
+
```
|
|
16
|
+
* Open `WebDriverAgent.xcodeproj` in Xcode. This will likely open a screen with an empty editor.
|
|
17
|
+
* In the file browser on the left side, select the root _WebDriverAgent_ project, which will open
|
|
18
|
+
it in the editor. Then, under _Targets_, select _WebDriverAgentRunner_ (or
|
|
19
|
+
_WebDriverAgentRunner\_tvOS_ for tvOS), and switch to the _Signing & Capabilities_ tab.
|
|
20
|
+
* Check _Automatically manage signing_, and then select your _Team_ (you may need to first sign
|
|
21
|
+
into Xcode). The outcome should be similar to the following:
|
|
22
|
+
|
|
23
|
+

|
|
24
|
+
|
|
25
|
+
* Xcode will likely fail to create a provisioning profile due to an invalid bundle identifier:
|
|
26
|
+
|
|
27
|
+

|
|
28
|
+
|
|
29
|
+
* Change the _Bundle Identifier_ from `com.facebook.WebDriverAgentRunner` to something that Xcode
|
|
30
|
+
will accept. You can also do this in the _Build Settings_ tab:
|
|
31
|
+
|
|
32
|
+

|
|
33
|
+
|
|
34
|
+
!!! note
|
|
35
|
+
|
|
36
|
+
Versions of Xcode older than 11 have a different naming convention. This feature may not work
|
|
37
|
+
for a package which is built by Xcode versions below 12.
|
|
38
|
+
|
|
39
|
+
* If your bundle identifier is accepted, you should see that Xcode has created a provisioning
|
|
40
|
+
profile and all is well:
|
|
41
|
+
|
|
42
|
+

|
|
43
|
+
|
|
44
|
+
* Finally, you can verify that everything works:
|
|
45
|
+
* Select the scheme as _Product -> Scheme -> WebDriverAgentRunner_
|
|
46
|
+
* Select your real device in _Product -> Destination_
|
|
47
|
+
* Select _Product -> Test_ to build and install the WDA app
|
|
48
|
+
|
|
49
|
+
Proceed with [Validating the WDA Install](./real-device-config.md#validating-the-wda-install) for
|
|
50
|
+
the next steps!
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
---
|
|
2
|
+
hide:
|
|
3
|
+
- toc
|
|
4
|
+
|
|
5
|
+
title: Manual Configuration for a Generic Device
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
It is possible to build `WebDriverAgentRunner` for a generic iOS/iPadOS/tvOS device, and install the
|
|
9
|
+
generated `.app` package to a real device.
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
# iOS/iPadOS
|
|
13
|
+
$ xcodebuild clean build-for-testing -project WebDriverAgent.xcodeproj -derivedDataPath appium_wda_ios -scheme WebDriverAgentRunner -destination generic/platform=iOS CODE_SIGNING_ALLOWED=YES
|
|
14
|
+
|
|
15
|
+
# tvOS
|
|
16
|
+
$ xcodebuild clean build-for-testing -project WebDriverAgent.xcodeproj -derivedDataPath appium_wda_tvos -scheme WebDriverAgentRunner_tvOS -destination generic/platform=tvOS CODE_SIGNING_ALLOWED=YES
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
On successful completion the resulting package `WebDriverAgentRunner-Runner.app` should be located
|
|
20
|
+
in the `Build/Products/Debug-iphoneos/` subfolder under WebDriverAgent sources root, or in the path
|
|
21
|
+
provided as `derivedDataPath` argument.
|
|
22
|
+
|
|
23
|
+
!!! note
|
|
24
|
+
|
|
25
|
+
If the build fails, please make sure `WebDriverAgent.xcodeproj` has codesigning properties
|
|
26
|
+
configured properly. For example, you may need to change the bundle id for the provisioning profile.
|
|
27
|
+
|
|
28
|
+
The `WebDriverAgentRunner-Runner.app` can now be installed to any real device as allowed by the
|
|
29
|
+
provisioning profile.
|
|
30
|
+
|
|
31
|
+
You can install the package with 3rd party tools and manage it separately as explained in
|
|
32
|
+
[How To Set Up And Customize WebDriverAgent Server](../guides/wda-custom-server.md). Note that if
|
|
33
|
+
the codesigning was not correct, the installation will fail.
|
|
34
|
+
|
|
35
|
+
As a more advanced method, you can generate the package with `CODE_SIGNING_ALLOWED=NO` and do
|
|
36
|
+
[`codesign`](https://developer.apple.com/documentation/xcode/using-the-latest-code-signature-format)
|
|
37
|
+
by yourself. This would make the device management more flexible, but you would need to know about
|
|
38
|
+
advanced codesign usage scenarios.
|
|
39
|
+
|
|
40
|
+
!!! note
|
|
41
|
+
|
|
42
|
+
The Appium team distributes generic builds with `CODE_SIGNING_ALLOWED=NO` at
|
|
43
|
+
[WebDriverAgent package releases](https://github.com/appium/WebDriverAgent/releases).
|
|
44
|
+
It is recommended to sign packages with a wildcard (`*`) provisioning profile,
|
|
45
|
+
although such profiles require a paid Apple Developer account.
|
|
46
|
+
For example, if you're preparing such a provisioning profile for `io.appium.WebDriverAgentRunner.xctrunner`, it will be for `io.appium.*`, `io.appium.WebDriverAgentRunner.*` or `*`.
|
|
47
|
+
In case of a free account, you may need to update the bundle id before building
|
|
48
|
+
the WebDriverAgent package to prepare a properly signed WebDriverAgent package
|
|
49
|
+
by `xcodebuild`.
|
package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/real-device-config.md
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Real Device Configuration
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
In order to communicate with the device under test, the XCUITest driver automatically installs the
|
|
6
|
+
`WebDriverAgentRunner-Runner` (WDA) application on it, using Xcode's command-line utility `xcodebuild`.
|
|
7
|
+
Unlike simulators, real devices have several security restrictions that need to be manually
|
|
8
|
+
configured, before this can work:
|
|
9
|
+
|
|
10
|
+
- Devices need to be trusted. This can be done by opening Xcode and afterwards physically connecting
|
|
11
|
+
the device under test to the computer. The device should have a popup asking to trust the computer,
|
|
12
|
+
which you should accept.
|
|
13
|
+
- Devices using iOS/iPadOS 16 or above require enabling Developer Mode. Please read
|
|
14
|
+
[Apple's documentation on Developer Mode](https://developer.apple.com/documentation/xcode/enabling-developer-mode-on-a-device)
|
|
15
|
+
for more details. `devmodectl streaming` CLI on macOS 13+ and installing development signed apps
|
|
16
|
+
also help enabling the mode.
|
|
17
|
+
- After enabling Developer Mode (if applicable), please turn on _Settings -> Developer -> Enable UI Automation_
|
|
18
|
+
- Webviews will not be testable unless the Safari Inspector is enabled. Please turn it on in
|
|
19
|
+
_Settings -> Safari -> Advanced -> Web Inspector_. Similarly, you may want to turn on the adjacent
|
|
20
|
+
option _Settings -> Safari -> Advanced -> Remote Automation_.
|
|
21
|
+
|
|
22
|
+
Finally, the WDA application must have a valid provisioning profile, which includes signing the app
|
|
23
|
+
and linking it to a development team.
|
|
24
|
+
|
|
25
|
+
## Provisioning Profile Setup
|
|
26
|
+
|
|
27
|
+
Generally, unless your device under test [already has WDA installed](../guides/run-preinstalled-wda.md),
|
|
28
|
+
or you already have [a prebuilt WDA](../guides/run-prebuilt-wda.md) on your local system, you will
|
|
29
|
+
need an Apple ID to be able to sign the app.
|
|
30
|
+
|
|
31
|
+
Once you have an Apple ID, there are several approaches you can take.
|
|
32
|
+
|
|
33
|
+
* [__Basic Automatic Configuration__](./prov-profile-basic-auto.md): the easiest approach, but
|
|
34
|
+
requires you to have a paid Apple Developer account
|
|
35
|
+
|
|
36
|
+
If the automatic configuration did not work or does not apply to you, you will need to follow one of
|
|
37
|
+
the manual configuration approaches. All of these involve the WDA Xcode project, so at the very
|
|
38
|
+
least, you must know the local path to the project file - `WebDriverAgent.xcodeproj`:
|
|
39
|
+
|
|
40
|
+
* The WDA project is included in `appium-webdriveragent`, which is installed as a dependency of the
|
|
41
|
+
XCUITest driver. You can therefore find the project file in
|
|
42
|
+
`/path/to/xcuitest/driver/node_modules/appium-webdriveragent/WebDriverAgent.xcodeproj`.
|
|
43
|
+
By default, drivers are installed in `~/.appium`, so the project would be located at
|
|
44
|
+
`~/.appium/node_modules/appium-xcuitest-driver/node_modules/appium-webdriveragent/WebDriverAgent.xcodeproj`.
|
|
45
|
+
* If using XCUITest driver v4.13.0 or newer, you can run the `appium driver run xcuitest open-wda`
|
|
46
|
+
[driver script](../reference/scripts.md) to directly open `WebDriverAgent.xcodeproj` in Xcode.
|
|
47
|
+
|
|
48
|
+
The WDA project file can now be used in the manual configuration approaches:
|
|
49
|
+
|
|
50
|
+
* [__Basic Manual Configuration__](./prov-profile-basic-manual.md): create a new project, then use
|
|
51
|
+
its provisioning profile and bundle ID
|
|
52
|
+
* [__Full Manual Configuration__](./prov-profile-full-manual.md): associate the provisioning profile
|
|
53
|
+
directly with the WDA project
|
|
54
|
+
* [__Manual Configuration for a Generic Device__](./prov-profile-generic-manual.md): manually run
|
|
55
|
+
`xcodebuild` to build WDA, then manually install it
|
|
56
|
+
|
|
57
|
+
### Validating the WDA Install
|
|
58
|
+
|
|
59
|
+
Once you have configured the WDA project or have the app ready, you can try installing it. It is
|
|
60
|
+
possible that you may encounter some errors:
|
|
61
|
+
|
|
62
|
+
* `xcodebuild exited with code '65' and signal 'null'`
|
|
63
|
+
|
|
64
|
+
This usually happens when attempting the automatic configuration, and it means that the necessary
|
|
65
|
+
code signing is not set up correctly. Follow the steps in any of the manual configuration
|
|
66
|
+
approaches to fix this.
|
|
67
|
+
|
|
68
|
+
* `Unable to launch <your-bundle-id>.WebDriverAgentRunner-Runner because it has an invalid code
|
|
69
|
+
signature, inadequate entitlements or its profile has not been explicitly trusted by the user.`
|
|
70
|
+
|
|
71
|
+
This means that the developer is not trusted on the device. If you manually try to open the WDA
|
|
72
|
+
app on the device, you will see a popup message:
|
|
73
|
+
|
|
74
|
+

|
|
75
|
+
|
|
76
|
+
To fix this, you need to open _Settings -> General -> VPN & Device Management_ on the device, then
|
|
77
|
+
select your development team and trust it. Afterwards you should be able to open/launch the app.
|
|
78
|
+
See [Apple documentation for more information](https://support.apple.com/en-us/HT204460).
|
|
79
|
+
|
|
80
|
+
* For other issues, please refer to the [Troubleshooting](../guides/troubleshooting.md) page
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
### Create an Offline Provisioning Profile
|
|
84
|
+
|
|
85
|
+
Since iOS 16, Apple requires a device to have a live internet connection for validating the code
|
|
86
|
+
signing. It is possible to set up an offline enabled provisioning profile, which allows you to avoid
|
|
87
|
+
the limitation. Please read [this issue](https://github.com/appium/appium/issues/18378#issuecomment-1482678074)
|
|
88
|
+
regarding detailed configuration steps.
|
|
89
|
+
|
|
90
|
+
## Tune WebDriverAgent to improve session startup performance
|
|
91
|
+
|
|
92
|
+
Running `xcodebuild` every time takes much longer time to complete a session startup.
|
|
93
|
+
XCUITest driver offers a few methods to improve the performance with, or without using `xcodebuild`.
|
|
94
|
+
|
|
95
|
+
Some might require deeper understanding of iOS development environment,
|
|
96
|
+
but they help to improve speedup your test execution speed.
|
|
97
|
+
|
|
98
|
+
- [Run Preinstalled WebDriverAgentRunner](./../guides/run-preinstalled-wda.md)
|
|
99
|
+
- [Run Prebuilt WebDriverAgentRunner](./../guides/run-prebuilt-wda.md)
|
|
100
|
+
- [Attach to a Running WebDriverAgent](./../guides/attach-to-running-wda.md)
|
|
Binary file
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: BiDi Protocol Support
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
XCUITest driver has partial support of the [BiDi Protocol](https://w3c.github.io/webdriver-bidi/) since version 7.26.0.
|
|
6
|
+
Only events and commands mentioned below are supported.
|
|
7
|
+
All other entities described in the spec throw not implemented errors.
|
|
8
|
+
|
|
9
|
+
# Supported Events
|
|
10
|
+
|
|
11
|
+
## log.entryAdded
|
|
12
|
+
|
|
13
|
+
This event is emitted if the driver retrieves a new entry for any of the below log types. Logs collection might be disabled by the `appium:skipLogCapture` capability.
|
|
14
|
+
|
|
15
|
+
### crashlog
|
|
16
|
+
|
|
17
|
+
Events are emitted for both emulator and real devices. The latter only works if [py-ios-device](https://github.com/YueChen-C/py-ios-device) is installed on the server host. Each event contains a particular device crash report entry.
|
|
18
|
+
Events are always emitted with the `NATIVE_APP` context.
|
|
19
|
+
|
|
20
|
+
### syslog
|
|
21
|
+
|
|
22
|
+
Events are emitted for both emulator and real devices. Each event contains a single device system log line.
|
|
23
|
+
Events are always emitted with the `NATIVE_APP` context.
|
|
24
|
+
|
|
25
|
+
### safariConsole
|
|
26
|
+
|
|
27
|
+
Events are emitted for both emulator and real devices. Each event contains a single Safari console log line.
|
|
28
|
+
Events are always emitted with the appropriate web context name from which they were generated.
|
|
29
|
+
Events are only emitted if the `appium:showSafariConsoleLog` capability value is provided.
|
|
30
|
+
|
|
31
|
+
### safariNetwork
|
|
32
|
+
|
|
33
|
+
Events are emitted for both emulator and real devices. Each event contains a single Safari network log line.
|
|
34
|
+
Events are always emitted with the appropriate web context name from which they were generated.
|
|
35
|
+
Events are only emitted if the `appium:showSafariNetworkLog` capability value is provided.
|
|
36
|
+
|
|
37
|
+
### performance
|
|
38
|
+
|
|
39
|
+
Events are emitted for both emulator and real devices. Each event contains a single Safari performance log line.
|
|
40
|
+
Events are always emitted with the appropriate web context name from which they were generated.
|
|
41
|
+
Events are only emitted if the `appium:enablePerformanceLogging` capability value is provided.
|
|
42
|
+
|
|
43
|
+
### server
|
|
44
|
+
|
|
45
|
+
Events are emitted for both emulator and real devices. Each event contains a single Appium server log line.
|
|
46
|
+
Events are always emitted with the `NATIVE_APP` context.
|
|
47
|
+
Events are only emitted if the `get_server_logs` server security feature is enabled.
|
|
48
|
+
|
|
49
|
+
## appium:xcuitest.contextUpdate
|
|
50
|
+
|
|
51
|
+
This event is emitted upon the context change, either explicit or implicit.
|
|
52
|
+
The event is always emitted upon new session initialization.
|
|
53
|
+
See the [GitHub feature ticket](https://github.com/appium/appium/issues/20741) for more details.
|
|
54
|
+
|
|
55
|
+
### CDDL
|
|
56
|
+
|
|
57
|
+
```cddl
|
|
58
|
+
appium:xcuitest.contextUpdated = {
|
|
59
|
+
method: "appium:xcuitest.contextUpdated",
|
|
60
|
+
params: {
|
|
61
|
+
name: text,
|
|
62
|
+
type: "NATIVE" / "WEB",
|
|
63
|
+
},
|
|
64
|
+
}
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
The event contains the following params:
|
|
68
|
+
|
|
69
|
+
### name
|
|
70
|
+
|
|
71
|
+
Contains the actual name of the new context, for example `NATIVE_APP`.
|
|
72
|
+
|
|
73
|
+
### type
|
|
74
|
+
|
|
75
|
+
Either `NATIVE` or `WEB` depending on which context is currently active in the driver session.
|