appium-mcp 0.0.1 → 1.1.5
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 +43 -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 +114 -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-page-source.d.ts +2 -0
- package/dist/tools/interactions/get-page-source.js +48 -0
- package/dist/tools/interactions/get-page-source.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 +171 -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 +135 -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-page-source.ts +52 -0
- package/src/tools/interactions/get-text.ts +47 -0
- package/src/tools/interactions/install-app.ts +45 -0
- package/src/tools/interactions/list-apps.ts +65 -0
- package/src/tools/interactions/screenshot.ts +56 -0
- package/src/tools/interactions/set-value.ts +48 -0
- package/src/tools/interactions/terminate-app.ts +47 -0
- package/src/tools/interactions/uninstall-app.ts +47 -0
- package/src/tools/locators.ts +83 -0
- package/src/tools/scroll-to-element.ts +188 -0
- package/src/tools/scroll.ts +97 -0
- package/src/tools/select-device.ts +298 -0
- package/src/tools/select-platform.ts +243 -0
- package/src/tools/session-store.ts +72 -0
- package/src/tools/setup-wda.ts +218 -0
- package/src/types/appium-ios-device.d.ts +8 -0
- package/src/types/appium-xcuitest-driver.d.ts +5 -0
- package/tsconfig.json +23 -0
- package/index.js +0 -0
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Appium Project History
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Appium has been around in one form or another since 2012. It's been under the
|
|
6
|
+
direction of various individuals and organizations, and it's even been
|
|
7
|
+
implemented in 3 different programming languages! Welcome to more than you ever
|
|
8
|
+
wanted to know about how Appium got to be what is it today...
|
|
9
|
+
|
|
10
|
+
## Early Inspiration
|
|
11
|
+
|
|
12
|
+
[Dan Cuellar](https://twitter.com/thedancuellar) was the Test Manager at Zoosk
|
|
13
|
+
in 2011, when he encountered a problem. The length of the test passes on the
|
|
14
|
+
iOS product was getting out of hand. Less testing was an option, but would come
|
|
15
|
+
with additional risk, especially with it taking several days to get patches
|
|
16
|
+
through the iOS App Store Review process. He thought back to his days working
|
|
17
|
+
on websites and realized automation was the answer.
|
|
18
|
+
|
|
19
|
+
Dan surveyed the existing landscape of tools, only to find that all of them
|
|
20
|
+
hand major drawbacks. The tool supplied by Apple, UIAutomation, required tests
|
|
21
|
+
to be written in JavaScript, and did not allow for real-time debugging or
|
|
22
|
+
interpretation. It also had to be executed inside the Xcode profiling tool,
|
|
23
|
+
Instruments. Other 3rd-party tools used private APIs and required SDKs and HTTP
|
|
24
|
+
Servers to be embedded into the application. This seemed highly undesirable.
|
|
25
|
+
|
|
26
|
+
Unsatisfied with the existing options, Dan asked his manager for some
|
|
27
|
+
additional time to see if he could find a better way. He spent 2 weeks poking
|
|
28
|
+
and prodding around to see if there was a way to use approved Apple
|
|
29
|
+
technologies to automate an iOS application. The first implementation he tried
|
|
30
|
+
used AppleScript to send messages to Mac UI elements using the OS
|
|
31
|
+
X accessibility APIs. This worked to some degree, but would never work on real
|
|
32
|
+
devices, not to mention other drawbacks.
|
|
33
|
+
|
|
34
|
+
So he thought, what if I could get the UIAutomation framework to run in real
|
|
35
|
+
time like an interpreter? He looked into it and he determined that all he would
|
|
36
|
+
need to do is find a way to receive, execute, and reply to commands from within
|
|
37
|
+
a UIAutomation javascript program. Using the utility Apple provided for
|
|
38
|
+
executing shell commands he was able to `cat` sequentially ordered text files
|
|
39
|
+
to receive commands, `eval()` the output to execute them, and write them back
|
|
40
|
+
to disk with `python`. He then prepared code in C# that implemented the
|
|
41
|
+
Selenium-style syntax to write the sequentially ordered javascript commands.
|
|
42
|
+
iOSAuto is born.
|
|
43
|
+
|
|
44
|
+
## Selenium Conference 2012
|
|
45
|
+
|
|
46
|
+
Dan was selected to speak at Selenium Conference 2012 in London about an
|
|
47
|
+
entirely different topic. As part of his presentation, he showed off iOS
|
|
48
|
+
Automation using Selenium syntax to demonstrate writing platform-agnostic tests
|
|
49
|
+
that use separate platform-specific page objects with a common interface. To
|
|
50
|
+
his surprise, the cool test architecture would take a backseat to the spectacle
|
|
51
|
+
of iOS tests running like WebDriver tests. Several people suggested that he
|
|
52
|
+
give a lightning talk later in the conference to explain exactly how it worked.
|
|
53
|
+
|
|
54
|
+
On the second day of the conference, Dan stepped up on stage to give the
|
|
55
|
+
lightning talk. Jason Huggins, co-creator of Selenium, moderated the lightning
|
|
56
|
+
talks. Dan experienced technical difficulties getting his presentation to
|
|
57
|
+
load, and Jason nearly had to move on to the next lightning talk. At the last
|
|
58
|
+
moment, the screen turned on and Dan jumped into his presentation. He explained
|
|
59
|
+
the details of his implementation and how it worked, begged for contributors,
|
|
60
|
+
and in five minutes it was over. The crowd applauded politely, and he left the
|
|
61
|
+
stage.
|
|
62
|
+
|
|
63
|
+
## The Phone Rings
|
|
64
|
+
|
|
65
|
+
Four months after the Selenium Conference, Jason called Dan. Jason had been
|
|
66
|
+
working on iOS testing support for a client at Sauce Labs. Jason remembered
|
|
67
|
+
Dan's lightning talk and thought the project might be useful to Jason's work,
|
|
68
|
+
but Dan's source code was not public. Jason asked Dan to meet up. Later that
|
|
69
|
+
week, Dan met Jason in a bar in San Francisco and showed him the source code
|
|
70
|
+
for iOS Auto.
|
|
71
|
+
|
|
72
|
+
A long-time open source advocate, Jason encouraged Dan to release his code
|
|
73
|
+
under an open source license. In August, Dan released the source
|
|
74
|
+
code
|
|
75
|
+
on GitHub in C#. Jason encouraged Dan to change the language to make the
|
|
76
|
+
project more appealing to potential contributors. Dan uploaded a new version
|
|
77
|
+
in
|
|
78
|
+
Python.
|
|
79
|
+
In September, Jason added a web server and began to implement the WebDriver
|
|
80
|
+
wire
|
|
81
|
+
protocol
|
|
82
|
+
over HTTP, making iOS Auto scriptable from any Selenium WebDriver client
|
|
83
|
+
library in any language.
|
|
84
|
+
|
|
85
|
+
## The Mobile Testing Summit
|
|
86
|
+
|
|
87
|
+
Jason decided that the project should be presented at the Mobile Testing
|
|
88
|
+
Summit in November, but suggested that the
|
|
89
|
+
project get a new name first. Many ideas were thrown out and they settled on
|
|
90
|
+
AppleCart. A day later, while he was perusing some of Apple's guidance on
|
|
91
|
+
copyright and trademarks, Jason noticed that under the section of examples for
|
|
92
|
+
names Apple would defend its trademarks against, the first example was
|
|
93
|
+
"AppleCart". He called Dan and informed him of the situation, and they
|
|
94
|
+
brainstormed for a bit before Jason hit the jackpot. Appium... Selenium for
|
|
95
|
+
Apps.
|
|
96
|
+
|
|
97
|
+
## Sauce Labs and Node.js
|
|
98
|
+
|
|
99
|
+
In January 2013, not long after the Mobile Testing Summit, Sauce Labs decided
|
|
100
|
+
to fully back Appium and provide more developer power. A task force was created
|
|
101
|
+
to evaluate the current state and how best to move forward with the project.
|
|
102
|
+
The team, which included Jonathan Lipps (the current project lead), decided
|
|
103
|
+
that Appium needed a rebirth, and ultimately settled on Node.js as the
|
|
104
|
+
framework to use. Node is well-known as a fast and efficient web server
|
|
105
|
+
backend, and at the end of the day, Appium is just a highly-specialized web
|
|
106
|
+
server. It was also decided that JavaScript as a language was accessible enough
|
|
107
|
+
that Appium would be able to grow into a larger community of open-source
|
|
108
|
+
developers with JavaScript than the other options on the table.
|
|
109
|
+
|
|
110
|
+
In just a few days, the team leveraged the existing work on Appium and had
|
|
111
|
+
a new version of Appium with as much functionality as the previous Python
|
|
112
|
+
version. The foundation had been laid for Appium's basic architecture, and we
|
|
113
|
+
have been successfully building on it since. A few weeks into this sprint,
|
|
114
|
+
Jonathan Lipps was formally designated project lead and he began to strategize
|
|
115
|
+
how to get more people from the community involved with Appium's development.
|
|
116
|
+
|
|
117
|
+
## Appium Around the World
|
|
118
|
+
|
|
119
|
+
Ultimately, Jonathan decided that getting Appium in front of as many developers
|
|
120
|
+
at conferences and meetups was the best way to attract users and contributions.
|
|
121
|
+
Appium in its new incarnation was debuted at the Google Test Automation
|
|
122
|
+
Conference 2013. Later in 2013,
|
|
123
|
+
Appium was presented at conferences and meetups all around the US, as well as
|
|
124
|
+
in England, Poland, Portugal, and Australia. Notably, Jonathan had Appium
|
|
125
|
+
[perform as instruments in a band](https://www.youtube.com/watch?v=zsbNVkayYRQ)
|
|
126
|
+
and Dan Cuellar put together a fun Appium video
|
|
127
|
+
montage for Selenium Conference.
|
|
128
|
+
|
|
129
|
+
But during all these presentations and conferences, the project continued to
|
|
130
|
+
develop. Early in 2013 we released Android and Selendroid support, making
|
|
131
|
+
Appium the first truly cross-platform automation framework. The project also
|
|
132
|
+
continued to attract users and contributors, and by the end of 2013, we'd
|
|
133
|
+
already had well over 1,000 commits.
|
|
134
|
+
|
|
135
|
+
## The Road to Appium 1.0
|
|
136
|
+
|
|
137
|
+
Appium began to grow and mature significantly. In May 2014,
|
|
138
|
+
we released Appium 1.0, which stood as a milestone in Appium's development.
|
|
139
|
+
Appium was given
|
|
140
|
+
[various](https://www.prnewswire.com/news-releases/black-duck-announces-black-duck-open-source-rookies-of-the-year-winners-242383341.html)
|
|
141
|
+
[awards](https://www.infoworld.com/article/2241247/164642-bossie-awards-2014-the-best-open-source-application-development-tools.html)
|
|
142
|
+
and became the most popular open-source cross-platform mobile automation
|
|
143
|
+
framework. Stability improved, bugs were prioritized and fixed, and features
|
|
144
|
+
added. Sauce Labs increased the number of developers it donated to working
|
|
145
|
+
on Appium, but the entire community stayed involved in guiding the project and
|
|
146
|
+
contributing to it, and project governance continued to happen in the open, on
|
|
147
|
+
public mailing lists and GitHub's issue tracker.
|
|
148
|
+
|
|
149
|
+
## The Appium Umbrella Broadens
|
|
150
|
+
|
|
151
|
+
Eventually, it became clear that the Appium codebase was not optimized for
|
|
152
|
+
a large team of distributed, sometime contributors. We took the opportunity as
|
|
153
|
+
a committer team to rewrite Appium from the ground up, using a more modern
|
|
154
|
+
version of the JavaScript language, and redoing Appium's architecture so that
|
|
155
|
+
it was easy for users or third-party developers to build their own Appium
|
|
156
|
+
"drivers". We wanted for it to be easier for new contributors to get ramped up
|
|
157
|
+
on the Appium codebase, and to see support for new platforms added to Appium by
|
|
158
|
+
groups other than the core team. That vision has begun to be fulfilled, with
|
|
159
|
+
groups like Microsoft and Youi.tv adding drivers to Appium for Windows desktop
|
|
160
|
+
app automation and Youi.tv app automation, respectively.
|
|
161
|
+
|
|
162
|
+
## Appium To The People
|
|
163
|
+
|
|
164
|
+
In late 2016, Sauce Labs donated Appium as a project to the JS
|
|
165
|
+
Foundation, in order to cement for the world Sauce's
|
|
166
|
+
commitment that Appium remains open source. The JS Foundation is a non-profit
|
|
167
|
+
open source stewardship organization which takes responsibility for holding the
|
|
168
|
+
copyright for open source projects, as well as ensuring they have a long and
|
|
169
|
+
successful tenure in the community. As a result of our move to a non-profit
|
|
170
|
+
foundation, we hope that the door will open even more widely for new
|
|
171
|
+
contributors, either as individuals or representing one of the many companies
|
|
172
|
+
which now have an interest in seeing Appium move forward.
|
|
173
|
+
|
|
174
|
+
Eventually, the JS Foundation merged into the [OpenJS Foundation](https://openjsf.org),
|
|
175
|
+
and Appium became an Impact Project in the foundation.
|
|
176
|
+
|
|
177
|
+
## Appium 2.0
|
|
178
|
+
|
|
179
|
+
Appium 2 was released in 2023 and introduced an entirely revamped architecture, shifting focus to Appium
|
|
180
|
+
as an ecosystem rather than an all-in-one project. This unlocked the ability for anyone to develop
|
|
181
|
+
and share their own Appium extensions (drivers and plugins), opening up a world of possibilities
|
|
182
|
+
for automation-related development for platforms far beyond iOS and Android! As a result,
|
|
183
|
+
many third-party extensions were created, such as new drivers for Flutter and Windows, plugins for
|
|
184
|
+
mocking APIs and managing device farms, new Appium clients based on Rust and Swift, and much more.
|
|
185
|
+
|
|
186
|
+
Around this time was also when we started a sponsorship program for Appium, which attracted various
|
|
187
|
+
major and minor sponsors alike. This allowed us to give back to the Appium community, by compensating
|
|
188
|
+
contributors for their voluntary work on the project.
|
|
189
|
+
|
|
190
|
+
## Appium 3.0
|
|
191
|
+
|
|
192
|
+
2025 saw the release of Appium 3. This update was a lot smaller than Appium 2 and included only a
|
|
193
|
+
few behavioral changes, instead focusing on removing deprecated code and updating compatibility for
|
|
194
|
+
more modern ecosystems. Still, this reduced scope was also to be expected: since Appium 2, the
|
|
195
|
+
main feature development efforts had shifted to individual drivers and plugins, many of which had
|
|
196
|
+
gone through multiple major updates during the Appium 2 era.
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
---
|
|
2
|
+
hide:
|
|
3
|
+
- toc
|
|
4
|
+
|
|
5
|
+
title: Appium in a Nutshell
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
As mentioned on the main page, Appium aims to support UI automation of many _different platforms_
|
|
9
|
+
(mobile, web, desktop, etc.). Not only that, but it also aims to support automation code written in
|
|
10
|
+
_different languages_ (JS, Java, Python, etc.). Combining all of this functionality in a single
|
|
11
|
+
program is a very daunting, if not impossible task!
|
|
12
|
+
|
|
13
|
+
In order to achieve this, Appium is effectively split into four parts:
|
|
14
|
+
|
|
15
|
+
<div class="grid cards" markdown>
|
|
16
|
+
|
|
17
|
+
- :material-image-filter-center-focus-strong: **Appium Core** - defines the core APIs
|
|
18
|
+
- :material-car: **Drivers** - implement connectivity to specific platforms
|
|
19
|
+
- :octicons-code-16: **Clients** - implement Appium's API in specific languages
|
|
20
|
+
- :fontawesome-solid-plug: **Plugins** - change or extend Appium's core functionality
|
|
21
|
+
|
|
22
|
+
</div>
|
|
23
|
+
|
|
24
|
+
Therefore, in order to start automating something with Appium, you need to:
|
|
25
|
+
|
|
26
|
+
- Install Appium itself
|
|
27
|
+
- Install a driver for your target platform
|
|
28
|
+
- Install a client library for your target programming language
|
|
29
|
+
- (Optional) install one or more plugins
|
|
30
|
+
|
|
31
|
+
These are the basics! If you are ready to jump in, proceed with the [Quickstart](../quickstart/index.md)!
|
|
32
|
+
|
|
33
|
+
If you wish to learn more details about how it all works, see these pages for background material:
|
|
34
|
+
|
|
35
|
+
- [Appium Core](./appium.md)
|
|
36
|
+
- [Appium Drivers](./drivers.md)
|
|
37
|
+
- [Appium Clients](./clients.md)
|
|
38
|
+
|
|
39
|
+
Finally, to learn about the origins of Appium, check out the [Appium Project History](./history.md).
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
---
|
|
2
|
+
hide:
|
|
3
|
+
- toc
|
|
4
|
+
|
|
5
|
+
title: 入门指南
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
让我们开始使用Appium! 为了成功使用此快速入门,建议您首先阅读[介绍](../intro/index.md),以便了解运行Appium和编写Appium脚本的概念。
|
|
9
|
+
|
|
10
|
+
此快速入门的基本计划如下:
|
|
11
|
+
|
|
12
|
+
1. 安装Appium
|
|
13
|
+
2. 安装Appium驱动程序及其依赖项
|
|
14
|
+
- 本指南提供了[UiAutomator2 驱动程序](https://github.com/appium/appium-uiautomator2-driver) 的说明
|
|
15
|
+
3. 在您选择的语言中安装Appium客户端库
|
|
16
|
+
- 本指南包含JavaScript、Python、Java、Ruby和.NET的选项
|
|
17
|
+
4. 使用示例应用程序编写并运行简单的Appium自动化脚本
|
|
18
|
+
|
|
19
|
+
### 系统需求
|
|
20
|
+
|
|
21
|
+
在开始之前,请确保您的系统满足运行Appium服务器的[要求](../quickstart/requirements.md)。 其他要求将在安装UiAutomator2驱动程序时讨论。 本指南还假设您在平台上具有基本的命令行熟练度,例如能够运行命令、设置和持久化环境变量等...
|
|
22
|
+
|
|
23
|
+
现在您准备开始了! 前往安装[Appium](./install.md)。
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
---
|
|
2
|
+
hide:
|
|
3
|
+
- toc
|
|
4
|
+
|
|
5
|
+
title: 安装Appium
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
!!! 信息
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
安装前,请确保检查 [系统要求] (./requirements.md)。
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
Appium 可以使用 "npm" 在全局安装:
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
npm install -g appium
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
!!! 备注
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
目前不支持其他软件包管理。
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## 启动Appium
|
|
27
|
+
|
|
28
|
+
Appium 可以使用 [命令行](../reference/cli/index.md) 启动:
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
appium
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
这会启动Appium服务器进程,该进程加载所有已安装的Appium驱动程序,并开始等待来自客户端连接(如测试自动化脚本)的新会话请求。
|
|
35
|
+
由于服务器进程独立于其客户端,因此必须在尝试启动新会话之前明确启动它。
|
|
36
|
+
|
|
37
|
+
当服务器启动时,控制台日志将列出客户端可以用来连接到此服务器的所有有效URL:
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
[Appium] You can provide the following URLs in your client code to connect to this server:
|
|
41
|
+
[Appium] http://127.0.0.1:4723/ (only accessible from the same host)
|
|
42
|
+
(... any other URLs ...)
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
一旦客户端请求新会话,Appium服务器进程将开始记录此会话的所有详细信息,直到其终止。 请记住这一点——如果您遇到Appium测试的问题,您可以随时检查服务器日志以获取更多详细信息。
|
|
46
|
+
|
|
47
|
+
接下来是什么? 即使Appium已安装并运行,它也不捆绑任何驱动程序,这意味着它还不能自动化任何东西。 因此,我们将为Android设置自动化——继续[安装UiAutomator2驱动程序](./uiauto2-driver.md)。
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
hide:
|
|
3
|
+
- toc
|
|
4
|
+
|
|
5
|
+
title: 下一步
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
现在您已成功为Android自动化设置了系统并运行了一个简单的测试,您将希望继续探索此文档。 特别是,这些是适合初学者的优秀指南和参考资料: 特别是,这些是适合初学者的优秀指南和参考资料:
|
|
9
|
+
|
|
10
|
+
- [生态系统](../ecosystem/index.md) 页面:浏览可用的驱动程序、客户端、插件和工具
|
|
11
|
+
- [管理Appium驱动程序和插件](../guides/managing-exts.md)
|
|
12
|
+
- [功能](../guides/caps.md)
|
|
13
|
+
- [设置](../guides/settings.md)
|
|
14
|
+
|
|
15
|
+
您还会发现[Appium Inspector](https://github.com/appium/appium-inspector)是编写Appium测试不可或缺的工具,因为它允许对应用进行视觉检查,并帮助您发现测试脚本中使用的元素定位器。
|
|
16
|
+
|
|
17
|
+
您还可以利用众多可用的在线Appium课程之一。
|
|
18
|
+
|
|
19
|
+
祝您好运,玩得开心!
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
hide:
|
|
3
|
+
- toc
|
|
4
|
+
|
|
5
|
+
title: 系统要求
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
Appium 服务器的基本要求如下:
|
|
9
|
+
|
|
10
|
+
- macOS、Linux 或 Windows 操作系统
|
|
11
|
+
- [Node.js](https://nodejs.org) 版本在 [SemVer](https://semver.org) 范围 `^20.19.0 || ^22.12.0 || >=24.0.0`
|
|
12
|
+
- 推荐使用 LTS 版本
|
|
13
|
+
- [`npm`](https://npmjs.com) 版本 `>=10`(`npm` 通常与 Node.js 捆绑,但可以独立升级)
|
|
14
|
+
|
|
15
|
+
Appium 本身相对轻量,没有显著的磁盘空间或 RAM 要求。 即使在资源受限的环境如 Raspberry Pi 中,只要有 Node.js 就可以运行。
|
|
16
|
+
|
|
17
|
+
### 驱动程序要求
|
|
18
|
+
|
|
19
|
+
用于自动化特定平台的驱动程序可能有其他要求。 请参考该平台的 [Appium 驱动程序](../ecosystem/drivers.md) 文档以获取其他依赖项。 普遍的情况是,给定平台的 Appium 驱动程序需要安装该平台的开发者工具链和 SDK。
|
|
20
|
+
|
|
21
|
+
为了帮助处理驱动程序要求,每个(官方)驱动程序都附带 Appium Doctor 工具,它允许验证是否已设置所有要求。 了解如何使用此工具的更多信息,请参阅 [命令行使用文档](../reference/cli/extensions.md#doctor)。
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
---
|
|
2
|
+
hide:
|
|
3
|
+
- toc
|
|
4
|
+
|
|
5
|
+
title: 编写测试 (.NET)
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
[Appium .NET Client](https://github.com/appium/dotnet-client/) 是
|
|
9
|
+
官方的 Appium C# 客户端。 这个驱动程序是 Selenium C# 客户端的扩展。 它具有常规驱动程序的所有功能,但在之上添加了 Appium 特定的方法。 该驱动程序在公共 NuGet Gallery 上作为 [Appium.WebDriver](https://www.nuget.org/packages/Appium.WebDriver/) 提供。
|
|
10
|
+
|
|
11
|
+
现在,我们进入目录并创建一个新的 [NUnit](https://nunit.org/) 项目。 我们还将添加对 Appium.Net 驱动程序和其他依赖项的引用。
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
cd dotnet-client
|
|
15
|
+
dotnet new nunit --name appiumtest
|
|
16
|
+
|
|
17
|
+
cd appiumtest
|
|
18
|
+
|
|
19
|
+
# 这将安装最新的 5.x 版本
|
|
20
|
+
dotnet add package Appium.WebDriver --prerelease
|
|
21
|
+
dotnet add package Newtonsoft.Json --version 13.0.3
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
完成后,您的项目应该有一个占位符文件 `UnitTest1.cs`。 我们将替换代码以包含 OpenQA 命名空间、驱动程序的初始化以及实际测试。
|
|
25
|
+
|
|
26
|
+
```C# title="UnitTest1.cs"
|
|
27
|
+
using OpenQA.Selenium;
|
|
28
|
+
using OpenQA.Selenium.Appium;
|
|
29
|
+
using OpenQA.Selenium.Appium.Android;
|
|
30
|
+
using OpenQA.Selenium.Appium.Enums;
|
|
31
|
+
|
|
32
|
+
namespace appiumtest;
|
|
33
|
+
|
|
34
|
+
public class Tests
|
|
35
|
+
{
|
|
36
|
+
private AndroidDriver _driver;
|
|
37
|
+
|
|
38
|
+
[OneTimeSetUp]
|
|
39
|
+
public void SetUp()
|
|
40
|
+
{
|
|
41
|
+
var serverUri = new Uri(Environment.GetEnvironmentVariable("APPIUM_HOST") ?? "http://127.0.0.1:4723/");
|
|
42
|
+
var driverOptions = new AppiumOptions() {
|
|
43
|
+
AutomationName = AutomationName.AndroidUIAutomator2,
|
|
44
|
+
PlatformName = "Android",
|
|
45
|
+
DeviceName = "Android Emulator",
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
driverOptions.AddAdditionalAppiumOption("appPackage", "com.android.settings");
|
|
49
|
+
driverOptions.AddAdditionalAppiumOption("appActivity", ".Settings");
|
|
50
|
+
// NoReset assumes the app com.google.android is preinstalled on the emulator
|
|
51
|
+
driverOptions.AddAdditionalAppiumOption("noReset", true);
|
|
52
|
+
|
|
53
|
+
_driver = new AndroidDriver(serverUri, driverOptions, TimeSpan.FromSeconds(180));
|
|
54
|
+
_driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
[OneTimeTearDown]
|
|
58
|
+
public void TearDown()
|
|
59
|
+
{
|
|
60
|
+
_driver.Dispose();
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
[Test]
|
|
64
|
+
public void TestFindApps()
|
|
65
|
+
{
|
|
66
|
+
_driver.StartActivity("com.android.settings", ".Settings");
|
|
67
|
+
_driver.FindElement(By.XPath("//*[@text='Apps']")).Click();
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
!!! 备注
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
这份指南的范围不包括对 dotnet 客户端库或此处发生的一切进行完整说明,因此我们暂时不对代码本身进行详细解释。您可能需要特别阅读 Appium [Capabilities](../guides/caps.md),以及熟悉 [dotnet 客户端驱动程序文档](https://github.com/appium/dotnet-client/) 以获得对您看到的各种 API 命令及其目的的更全面解释。
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
基本上,此代码执行以下操作:
|
|
79
|
+
|
|
80
|
+
1. 定义一组"Capabilities"(参数)发送到 Appium 服务器,以便 Appium 知道您想要自动化什么。 有些参数可以使用环境变量覆盖。
|
|
81
|
+
2. 在内置的 Android 设置应用上启动 Appium 会话。
|
|
82
|
+
3. 查找"Apps"列表项并点击它。
|
|
83
|
+
4. 结束 Appium 会话。
|
|
84
|
+
|
|
85
|
+
就是这样! 让我们试试。 在运行测试之前,请确保在另一个终端会话中运行 Appium 服务器,否则您会收到无法连接的错误。 然后,您可以执行脚本:
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
dotnet test
|
|
89
|
+
|
|
90
|
+
# 示例输出:
|
|
91
|
+
# Starting test execution, please wait...
|
|
92
|
+
# A total of 1 test files matched the specified pattern.
|
|
93
|
+
|
|
94
|
+
# Passed! - Failed: 0, Passed: 1, Skipped: 0, Total: 1, Duration: 323 ms - appiumtest.dll (net7.0)
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
如果一切顺利,您将看到设置应用打开并在模拟器中导航到"Apps"视图,然后应用再次关闭。
|
|
98
|
+
|
|
99
|
+
恭喜,您已经开始了 Appium 之旅! 继续阅读一些 [后续步骤](./next-steps.md) 以进行探索。
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
hide:
|
|
3
|
+
- toc
|
|
4
|
+
|
|
5
|
+
title: 编写测试 (Java)
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
Appium 团队维护了一个官方的 [客户端](https://github.com/appium/java-client) 用于 Java 编程语言。
|
|
9
|
+
它建立在 [Selenium](https://github.com/SeleniumHQ/selenium) 之上。
|
|
10
|
+
您也可以在 Kotlin 项目中使用此客户端。
|
|
11
|
+
|
|
12
|
+
按照 [将 Appium Java 客户端添加到您的测试框架](https://github.com/appium/java-client#add-appium-java-client-to-your-test-framework) 教程将库连接到您的测试框架源代码。
|
|
13
|
+
|
|
14
|
+
Appium Java 客户端具有专用类来支持大多数官方 Appium 驱动程序。 对于其他驱动程序,您可以简单地使用 [AppiumDriver](https://github.com/appium/java-client/blob/master/src/main/java/io/appium/java_client/AppiumDriver.java) 类
|
|
15
|
+
或从中构建自定义派生类。 查看 [驱动程序支持](https://github.com/appium/java-client#drivers-support) 文章以了解当前驱动程序类实现的更多信息。
|
|
16
|
+
|
|
17
|
+
按照 [使用示例](https://github.com/appium/java-client#usage-examples) 文章以了解
|
|
18
|
+
如何从您的测试框架调用 Java 客户端功能。
|
|
19
|
+
|
|
20
|
+
一旦您成功运行了一个测试,您可以继续阅读一些 [后续步骤](./next-steps.md) 以进行探索。
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
---
|
|
2
|
+
hide:
|
|
3
|
+
- toc
|
|
4
|
+
|
|
5
|
+
title: 编写测试 (JS)
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
要在 JavaScript (Node.js) 中编写 Appium 测试,我们需要选择一个与 Appium 兼容的客户端库。 维护最好的库,也是 Appium 团队推荐使用的,是 [WebdriverIO](https://webdriver.io),所以让我们使用它。 由于我们已经安装了 Appium,我们知道我们的 Node 和 NPM 已经满足要求。 所以在您的计算机上某个地方创建一个新的项目目录,然后在其中初始化一个新的 Node.js 项目:
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
npm init
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
提示中输入什么并不重要,只要最终得到一个有效的 `package.json`。
|
|
15
|
+
|
|
16
|
+
现在,通过 NPM 安装 `webdriverio` 包:
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
npm i --save-dev webdriverio
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
完成后,您的 `package.json` 文件应该包含如下部分:
|
|
23
|
+
|
|
24
|
+
```json title="package.json"
|
|
25
|
+
--8<-- "./sample-code/quickstarts/js/package.json"
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
现在是编写测试本身的时候了。 创建一个名为 `test.js` 的新文件,内容如下:
|
|
29
|
+
|
|
30
|
+
```js title="test.js"
|
|
31
|
+
--8<-- "./sample-code/quickstarts/js/test.js"
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
!!! note
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
这份指南的范围不包括对 WebdriverIO 客户端库或此处发生的一切进行完整说明,因此我们暂时不对代码本身进行详细解释。您可能需要特别阅读 Appium [Capabilities](../guides/caps.md),以及熟悉优秀的 [WebdriverIO 文档](https://webdriver.io/docs/gettingstarted) 以获得对您看到的各种 API 命令及其目的的更全面解释。
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
!!! note
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
示例代码可从 [GitHub Appium 仓库](https://github.com/appium/appium/tree/master/packages/appium/sample-code/quickstarts/js) 获取。
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
基本上,此代码执行以下操作:
|
|
47
|
+
|
|
48
|
+
1. 定义一组"Capabilities"(参数)发送到 Appium 服务器,以便 Appium 知道您想要自动化什么。
|
|
49
|
+
2. 在内置的 Android 设置应用上启动 Appium 会话。
|
|
50
|
+
3. 查找"Apps"列表项并点击它。
|
|
51
|
+
4. 暂停片刻纯粹为了视觉效果。
|
|
52
|
+
5. 结束 Appium 会话。
|
|
53
|
+
|
|
54
|
+
就是这样! 让我们试试。 在运行测试之前,请确保在另一个终端会话中运行 Appium 服务器,否则您会收到无法连接的错误。 然后,您可以执行脚本:
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
node test.js
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
如果一切顺利,您将看到设置应用打开并导航到"Apps"视图,然后应用再次关闭。
|
|
61
|
+
|
|
62
|
+
恭喜,您已经开始了 Appium 之旅! 继续阅读一些 [后续步骤](./next-steps.md) 以进行探索。
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
---
|
|
2
|
+
hide:
|
|
3
|
+
- toc
|
|
4
|
+
|
|
5
|
+
title: 编写测试 (Python)
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
[Appium Python Client](https://github.com/appium/python-client) 是
|
|
9
|
+
官方的 Python Appium 客户端,可通过 pypi 以 [Appium-Python-Client](https://pypi.org/project/Appium-Python-Client/) 包名获取。
|
|
10
|
+
它继承自 [Selenium Python Binding](https://pypi.org/project/selenium/),
|
|
11
|
+
因此安装 Appium Python Client 包括 selenium 绑定。
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
pip install Appium-Python-Client
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
此示例使用 Python 的内置 `unittest` 模块,您也可以使用任何您想要的 Python 测试框架。
|
|
18
|
+
Appium Python 客户端自动添加 `appium:` 前缀。
|
|
19
|
+
您通常不需要担心前缀。
|
|
20
|
+
|
|
21
|
+
```python title="test.py"
|
|
22
|
+
--8<-- "./sample-code/quickstarts/py/test.py"
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
!!! note
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
这份指南的范围不包括对 Python 客户端库或此处发生的一切进行完整说明,因此我们暂时不对代码本身进行详细解释。
|
|
29
|
+
|
|
30
|
+
- 您可能需要特别阅读 Appium [Capabilities](../guides/caps.md)。
|
|
31
|
+
- Python Client GitHub 仓库中的 [功能测试代码](https://github.com/appium/python-client/tree/master/test/functional) 应该有助于找到更多工作示例。
|
|
32
|
+
- [文档](https://appium.github.io/python-client-sphinx/) 也有助于找到 Appium Python Client 中定义的方法。
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
!!! note
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
示例代码可从 [GitHub Appium 仓库](https://github.com/appium/appium/tree/master/packages/appium/sample-code/quickstarts/py) 获取。
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
基本上,此代码执行以下操作:
|
|
42
|
+
|
|
43
|
+
1. 定义一组"Capabilities"(参数)发送到 Appium 服务器,以便 Appium 知道您想要自动化什么。
|
|
44
|
+
2. 在内置的 Android 设置应用上启动 Appium 会话。
|
|
45
|
+
3. 查找"Apps"列表项并点击它。
|
|
46
|
+
4. 暂停片刻纯粹为了视觉效果。
|
|
47
|
+
5. 结束 Appium 会话。
|
|
48
|
+
|
|
49
|
+
就是这样! 让我们试试。 在运行测试之前,请确保在另一个终端会话中运行 Appium 服务器,否则您会收到无法连接的错误。 然后,您可以执行脚本:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
python test.py
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
如果一切顺利,您将看到设置应用打开并导航到"Apps"视图,然后应用再次关闭。
|
|
56
|
+
|
|
57
|
+
恭喜,您已经开始了 Appium 之旅! 继续阅读一些 [后续步骤](./next-steps.md) 以进行探索。
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
---
|
|
2
|
+
hide:
|
|
3
|
+
- toc
|
|
4
|
+
|
|
5
|
+
title: 编写测试 (Ruby)
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
[AppiumLib](https://github.com/appium/ruby_lib) 和 [AppiumLibCore](https://github.com/appium/ruby_lib_core)(**推荐**)是 Ruby 中的官方 Appium 客户端库,可通过 gem 以 [appium_lib](https://rubygems.org/gems/appium_lib) 和 [appium_lib_core](https://rubygems.org/gems/appium_lib_core) 包名获取。 appium_lib_core 继承自 Selenium Ruby Binding,而 appium_lib 继承自 appium_lib_core,因此安装这些库包括 selenium 绑定。 如果您需要一个不太复杂的客户端解决方案,我们推荐 `appium_lib_core`。 `appium_lib` 有一些核心没有的有用方法,但代价是更大的复杂性和可能在最新环境中不工作的历史方法。
|
|
9
|
+
|
|
10
|
+
作为第一步,让我们初始化一个 Gemfile 来管理依赖项:
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
bundle init
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
然后,您可以如下添加 Appium Ruby Client 依赖项:
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
bundle add appium_lib_core
|
|
20
|
+
# or
|
|
21
|
+
# bundle add appium_lib
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
下面的测试代码示例使用 `test-unit` 模块,因此请运行:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
bundle add test-unit
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
一旦这些步骤完成,您的 `Gemfile` 文件应该包含:
|
|
31
|
+
|
|
32
|
+
```ruby title="Gemfile"
|
|
33
|
+
--8<-- "./sample-code/quickstarts/rb/Gemfile"
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
`appium_lib_core` 是作为 Appium 客户端的主要部分。
|
|
37
|
+
`appium_lib` 有各种辅助方法,但驱动程序实例通常被设计为全局变量使用。 它可能导致处理实例的问题。
|
|
38
|
+
`appium_lib_core` 没有这样的全局变量。
|
|
39
|
+
|
|
40
|
+
此示例使用 `appium_lib_core` 和 `test-unit` gem 模块。
|
|
41
|
+
在 `appium_lib` 中的测试代码应该类似。
|
|
42
|
+
|
|
43
|
+
```ruby title="test.rb"
|
|
44
|
+
--8<-- "./sample-code/quickstarts/rb/test.rb"
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
!!! note
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
这份指南的范围不包括对 Ruby 客户端库或此处发生的一切进行完整说明,因此我们暂时不对代码本身进行详细解释。
|
|
51
|
+
|
|
52
|
+
- 您可能需要特别阅读 Appium [Capabilities](../guides/caps.md)。
|
|
53
|
+
- appium_lib_core GitHub 仓库中的 [功能测试代码](https://github.com/appium/ruby_lib_core/tree/master/test/functional) 应该有助于找到更多工作示例。
|
|
54
|
+
- 文档 [appium_lib_core](https://www.rubydoc.info/github/appium/ruby_lib_core) 和 [appium_lib](https://www.rubydoc.info/github/appium/ruby_lib) 也有助于找到可用方法。
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
!!! note
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
示例代码可从 [GitHub Appium 仓库](https://github.com/appium/appium/tree/master/packages/appium/sample-code/quickstarts/rb) 获取。
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
基本上,此代码执行以下操作:
|
|
64
|
+
|
|
65
|
+
1. 定义一组"Capabilities"(参数)发送到 Appium 服务器,以便 Appium 知道您想要自动化什么。
|
|
66
|
+
2. 在内置的 Android 设置应用上启动 Appium 会话。
|
|
67
|
+
3. 查找"Apps"列表项并点击它。
|
|
68
|
+
4. 暂停片刻纯粹为了视觉效果。
|
|
69
|
+
5. 结束 Appium 会话。
|
|
70
|
+
|
|
71
|
+
就是这样! 让我们试试。 在运行测试之前,请确保在另一个终端会话中运行 Appium 服务器,否则您会收到无法连接的错误。 然后,您可以执行脚本:
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
# 如果您的环境尚未运行安装命令,请先运行 "bundle install"。
|
|
75
|
+
bundle exec ruby test.rb
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
如果一切顺利,您将看到设置应用打开并导航到"Apps"视图,然后应用再次关闭。
|
|
79
|
+
|
|
80
|
+
恭喜,您已经开始了 Appium 之旅! 继续阅读一些 [后续步骤](./next-steps.md) 以进行探索。
|