@appium/mcp-documentation 1.0.2 → 1.0.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/CHANGELOG.md +15 -0
- package/package.json +3 -6
- package/src/resources/submodules/appium/.github/PULL_REQUEST_TEMPLATE.md +28 -0
- package/src/resources/submodules/appium/.github/copilot-instructions.md +9 -0
- package/src/resources/submodules/appium/CHANGELOG.md +45 -0
- package/src/resources/submodules/appium/GOVERNANCE.md +189 -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 +1547 -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-development-partner.md +36 -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 +1002 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/developing/build-plugins.md +523 -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 +106 -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 +271 -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 +178 -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 +87 -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 +736 -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 +246 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/reference/cli/index.md +36 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/reference/cli/insecure-features.md +24 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/reference/cli/server.md +78 -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 +31 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/reference/session/caps.md +56 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/reference/session/index.md +23 -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 +69 -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-development-partner.md +34 -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 +1010 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/developing/build-plugins.md +529 -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 +115 -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 +276 -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 +178 -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 +737 -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 +247 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/reference/cli/index.md +36 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/reference/cli/insecure-features.md +23 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/reference/cli/server.md +78 -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 +31 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/reference/session/caps.md +56 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/reference/session/index.md +23 -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 +66 -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/overrides/assets/images/sponsor-logo-testmuai-dark.png +0 -0
- package/src/resources/submodules/appium/packages/appium/docs/overrides/assets/images/sponsor-logo-testmuai-light.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-development-partner.md +34 -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 +1010 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/developing/build-plugins.md +529 -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 +115 -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 +279 -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 +178 -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 +91 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/intro/clients.md +100 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/intro/drivers.md +101 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/intro/history.md +72 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/intro/index.md +36 -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 +119 -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 +737 -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 +247 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/reference/cli/index.md +36 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/reference/cli/insecure-features.md +23 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/reference/cli/server.md +78 -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 +31 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/reference/session/caps.md +56 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/reference/session/index.md +23 -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 +66 -0
- package/src/resources/submodules/appium/packages/appium/types/manifest/README.md +30 -0
- package/src/resources/submodules/appium/packages/base-driver/CHANGELOG.md +1244 -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 +764 -0
- package/src/resources/submodules/appium/packages/base-plugin/README.md +15 -0
- package/src/resources/submodules/appium/packages/docutils/CHANGELOG.md +1038 -0
- package/src/resources/submodules/appium/packages/docutils/README.md +27 -0
- package/src/resources/submodules/appium/packages/driver-test-support/CHANGELOG.md +790 -0
- package/src/resources/submodules/appium/packages/driver-test-support/README.md +103 -0
- package/src/resources/submodules/appium/packages/eslint-config-appium-ts/CHANGELOG.md +256 -0
- package/src/resources/submodules/appium/packages/eslint-config-appium-ts/README.md +47 -0
- package/src/resources/submodules/appium/packages/execute-driver-plugin/CHANGELOG.md +671 -0
- package/src/resources/submodules/appium/packages/execute-driver-plugin/README.md +55 -0
- package/src/resources/submodules/appium/packages/fake-driver/CHANGELOG.md +603 -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 +780 -0
- package/src/resources/submodules/appium/packages/fake-plugin/README.md +7 -0
- package/src/resources/submodules/appium/packages/images-plugin/CHANGELOG.md +691 -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 +212 -0
- package/src/resources/submodules/appium/packages/logger/README.md +31 -0
- package/src/resources/submodules/appium/packages/opencv/CHANGELOG.md +446 -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 +610 -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 +209 -0
- package/src/resources/submodules/appium/packages/relaxed-caps-plugin/README.md +35 -0
- package/src/resources/submodules/appium/packages/schema/CHANGELOG.md +308 -0
- package/src/resources/submodules/appium/packages/schema/README.md +50 -0
- package/src/resources/submodules/appium/packages/storage-plugin/CHANGELOG.md +157 -0
- package/src/resources/submodules/appium/packages/storage-plugin/README.md +83 -0
- package/src/resources/submodules/appium/packages/strongbox/CHANGELOG.md +129 -0
- package/src/resources/submodules/appium/packages/strongbox/README.md +110 -0
- package/src/resources/submodules/appium/packages/support/CHANGELOG.md +1147 -0
- package/src/resources/submodules/appium/packages/support/README.md +161 -0
- package/src/resources/submodules/appium/packages/tsconfig/CHANGELOG.md +147 -0
- package/src/resources/submodules/appium/packages/tsconfig/README.md +19 -0
- package/src/resources/submodules/appium/packages/types/CHANGELOG.md +871 -0
- package/src/resources/submodules/appium/packages/types/README.md +21 -0
- package/src/resources/submodules/appium/packages/universal-xml-plugin/CHANGELOG.md +502 -0
- package/src/resources/submodules/appium/packages/universal-xml-plugin/README.md +53 -0
- package/src/resources/submodules/appium/renovate/README.md +55 -0
- package/src/resources/submodules/appium-skills/.github/dependabot.yml +11 -0
- package/src/resources/submodules/appium-skills/.github/workflows/pr-title.yml +10 -0
- package/src/resources/submodules/appium-skills/AGENTS.md +214 -0
- package/src/resources/submodules/appium-skills/LICENSE +201 -0
- package/src/resources/submodules/appium-skills/README.md +33 -0
- package/src/resources/submodules/appium-skills/skills/appium-troubleshooting/SKILL.md +66 -0
- package/src/resources/submodules/appium-skills/skills/appium-troubleshooting/references/community-search.md +51 -0
- package/src/resources/submodules/appium-skills/skills/appium-troubleshooting/references/uiautomator2-locators.md +34 -0
- package/src/resources/submodules/appium-skills/skills/appium-troubleshooting/references/uiautomator2-session-startup.md +53 -0
- package/src/resources/submodules/appium-skills/skills/appium-troubleshooting/references/xcuitest-element-lookup.md +23 -0
- package/src/resources/submodules/appium-skills/skills/appium-troubleshooting/references/xcuitest-locators.md +16 -0
- package/src/resources/submodules/appium-skills/skills/appium-troubleshooting/references/xcuitest-troubleshooting.md +52 -0
- package/src/resources/submodules/appium-skills/skills/environment-setup-android/SKILL.md +346 -0
- package/src/resources/submodules/appium-skills/skills/environment-setup-bundletool/SKILL.md +91 -0
- package/src/resources/submodules/appium-skills/skills/environment-setup-chromium/SKILL.md +260 -0
- package/src/resources/submodules/appium-skills/skills/environment-setup-espresso/SKILL.md +216 -0
- package/src/resources/submodules/appium-skills/skills/environment-setup-ffmpeg/SKILL.md +91 -0
- package/src/resources/submodules/appium-skills/skills/environment-setup-node/SKILL.md +128 -0
- package/src/resources/submodules/appium-skills/skills/environment-setup-uiautomator2/SKILL.md +225 -0
- package/src/resources/submodules/appium-skills/skills/environment-setup-xcuitest/SKILL.md +153 -0
- package/src/resources/submodules/appium-skills/skills/xcuitest-real-device-config/SKILL.md +488 -0
- package/src/resources/submodules/appium-uiautomator2-driver/CHANGELOG.md +1506 -0
- package/src/resources/submodules/appium-uiautomator2-driver/README.md +2253 -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/android-multiwindow.md +872 -0
- package/src/resources/submodules/appium-uiautomator2-driver/docs/architecture.md +34 -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/mjpeg.md +111 -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 +3373 -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 +95 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/getting-started/device-setup.md +81 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/getting-started/index.md +36 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/getting-started/installation.md +38 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/getting-started/provisioning-profile/assets/images/check-prov-prof.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/getting-started/provisioning-profile/assets/images/create-new-project.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/getting-started/provisioning-profile/assets/images/create-single-page.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/getting-started/provisioning-profile/assets/images/no-prov-prof.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/getting-started/provisioning-profile/assets/images/project-prov-prof.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/getting-started/provisioning-profile/assets/images/set-up-bundle.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/getting-started/provisioning-profile/assets/images/untrusted-dev.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/getting-started/provisioning-profile/assets/images/xcode-bundle-id.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/getting-started/provisioning-profile/assets/images/xcode-config.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/getting-started/provisioning-profile/assets/images/xcode-facebook-fail.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/getting-started/provisioning-profile/assets/images/xcode-facebook-succeed.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/getting-started/provisioning-profile/auto-config.md +54 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/getting-started/provisioning-profile/basic-manual-config.md +40 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/getting-started/provisioning-profile/full-manual-config.md +49 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/getting-started/provisioning-profile/generic-device-config.md +75 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/getting-started/provisioning-profile/index.md +117 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/getting-started/system-requirements.md +131 -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/biometric-auth.md +29 -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/file-transfer.md +147 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/gestures.md +55 -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 +20 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/mjpeg.md +98 -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/remotexpc-tunnels-real-devices.md +148 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/run-prebuilt-wda.md +147 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/run-preinstalled-wda.md +177 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/tvos.md +246 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/wda-custom-server.md +283 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/index.md +36 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/overview.md +137 -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 +192 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/reference/capabilities.md +164 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/reference/commands.md +468 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/reference/element-attributes.md +157 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/reference/env-vars.md +18 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/reference/execute-methods.md +2269 -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 +107 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/reference/scripts.md +555 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/reference/security-flags.md +28 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/reference/server-args.md +19 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/reference/settings.md +467 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/reference/xpath-extensions.md +167 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/troubleshooting/element-lookup.md +202 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/troubleshooting/index.md +204 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/troubleshooting/wda-slowness.md +206 -0
- package/src/resources/submodules/appium-xcuitest-driver/test/assets/test.png +0 -0
- package/src/resources/submodules.zip +0 -0
|
@@ -0,0 +1,467 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Settings
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
The XCUITest driver exposes various settings through Appium's [Settings API](https://appium.io/docs/en/latest/guides/settings/).
|
|
6
|
+
|
|
7
|
+
## acceptAlertButtonSelector
|
|
8
|
+
|
|
9
|
+
| Type | Default |
|
|
10
|
+
| -- | -- |
|
|
11
|
+
| `string` | Not specified |
|
|
12
|
+
|
|
13
|
+
Custom selector for an alert button. This can be used to handle accept buttons with arbitrary text
|
|
14
|
+
when using the [Accept Alert](https://www.w3.org/TR/webdriver2/#accept-alert) API.
|
|
15
|
+
|
|
16
|
+
The selector should be a valid [class chain](https://github.com/facebookarchive/WebDriverAgent/wiki/Class-Chain-Queries-Construction-Rules)
|
|
17
|
+
expression, where the search root is the alert element itself, for example, ```**/XCUIElementTypeButton[`label CONTAINS[c] 'accept'`]```.
|
|
18
|
+
If the provided selector is wrong or does not match any element, the default button location
|
|
19
|
+
algorithm is used.
|
|
20
|
+
|
|
21
|
+
## activeAppDetectionPoint
|
|
22
|
+
|
|
23
|
+
| Type | Default |
|
|
24
|
+
| -- | -- |
|
|
25
|
+
| `string` | `MIN(w, h) * 0.2, MIN(w, h) * 0.2` |
|
|
26
|
+
|
|
27
|
+
The coordinates of a point on the device screen, used by WebDriverAgent to detect the currently
|
|
28
|
+
active application, if multiple active applications are identified. The format of this value is
|
|
29
|
+
a comma-separated list of the exact `x` and `y` coordinates (as integers or floats). By default,
|
|
30
|
+
it is set to 20% of the screen width and height.
|
|
31
|
+
|
|
32
|
+
Setting this value to a point outside of the physical device screen may cause undefined behavior.
|
|
33
|
+
|
|
34
|
+
## animationCoolOffTimeout
|
|
35
|
+
|
|
36
|
+
| Type | Default |
|
|
37
|
+
| -- | -- |
|
|
38
|
+
| `float` | `2` |
|
|
39
|
+
|
|
40
|
+
The amount of time in seconds to wait until the application under test does not have any active
|
|
41
|
+
animations. This check is usually applied after each automation action that is supposed to change
|
|
42
|
+
the state of the application under test (e.g. `click`), and blocks XCTest until the transition of
|
|
43
|
+
the tested application to a new state completes, or the cool off timeout occurs.
|
|
44
|
+
|
|
45
|
+
Setting this value to `0` disables animation checks completely.
|
|
46
|
+
|
|
47
|
+
## autoClickAlertSelector
|
|
48
|
+
|
|
49
|
+
| Type | Default |
|
|
50
|
+
| -- | -- |
|
|
51
|
+
| `string` | Not specified |
|
|
52
|
+
|
|
53
|
+
Custom selector for an alert button. This can be used to automatically locate an element inside an
|
|
54
|
+
alert hierarchy, and tap it as soon as a new alert is detected.
|
|
55
|
+
|
|
56
|
+
The selector should be a valid [class chain](https://github.com/facebookarchive/WebDriverAgent/wiki/Class-Chain-Queries-Construction-Rules)
|
|
57
|
+
expression, where the search root is the alert element itself, for example, ```**/XCUIElementTypeButton[`label CONTAINS[c] 'click'`]```.
|
|
58
|
+
If two or more elements match the provided selector, then the very first matched element is tapped
|
|
59
|
+
on. If the provided selector does not match any element, no action is performed. An error is thrown
|
|
60
|
+
if the provided selector is invalid.
|
|
61
|
+
|
|
62
|
+
This setting takes priority over the [`appium:autoAcceptAlerts`](./capabilities.md) and
|
|
63
|
+
`appium:autoDismissAlerts` capabilities, i.e. if both are enabled, the destination element to tap on
|
|
64
|
+
would be selected based on the `autoClickAlertSelector` selector value.
|
|
65
|
+
|
|
66
|
+
## boundElementsByIndex
|
|
67
|
+
|
|
68
|
+
| Type | Default |
|
|
69
|
+
| -- | -- |
|
|
70
|
+
| `boolean` | `false` |
|
|
71
|
+
|
|
72
|
+
Whether to look up elements using [`allElementsBoundByIndex`](https://developer.apple.com/documentation/xcuiautomation/xcuielementquery/allelementsboundbyindex),
|
|
73
|
+
as opposed to the default approach using [`allElementsBoundByAccessibilityElement`](https://developer.apple.com/documentation/xcuiautomation/xcuielementquery/allelementsboundbyaccessibilityelement).
|
|
74
|
+
[This Stack Overflow topic](https://stackoverflow.com/questions/49307513/meaning-of-allelementsboundbyaccessibilityelement)
|
|
75
|
+
explains the difference.
|
|
76
|
+
|
|
77
|
+
## defaultActiveApplication
|
|
78
|
+
|
|
79
|
+
| Type | Default |
|
|
80
|
+
| -- | -- |
|
|
81
|
+
| `string` | `auto` |
|
|
82
|
+
|
|
83
|
+
The suggested active application. This is used by WebDriverAgent to automatically select the
|
|
84
|
+
currently active application if multiple such applications are found. The setting is particularly
|
|
85
|
+
useful for automating split-screen apps, but also applies when dealing with native system alerts
|
|
86
|
+
or overlays (see [Element Lookup Troubleshooting](../troubleshooting/element-lookup.md#select-the-correct-active-application)).
|
|
87
|
+
|
|
88
|
+
## dismissAlertButtonSelector
|
|
89
|
+
|
|
90
|
+
| Type | Default |
|
|
91
|
+
| -- | -- |
|
|
92
|
+
| `string` | Not specified |
|
|
93
|
+
|
|
94
|
+
Custom selector for an alert button. This can be used to handle dismiss buttons with arbitrary text
|
|
95
|
+
when using the [Dismiss Alert](https://www.w3.org/TR/webdriver2/#dismiss-alert) API.
|
|
96
|
+
|
|
97
|
+
The selector should be a valid [class chain](https://github.com/facebookarchive/WebDriverAgent/wiki/Class-Chain-Queries-Construction-Rules)
|
|
98
|
+
expression, where the search root is the alert element itself, for example, ```**/XCUIElementTypeButton[`label CONTAINS[c] 'dismiss'`]```.
|
|
99
|
+
If the provided selector is wrong or does not match any element, the default button location
|
|
100
|
+
algorithm is used.
|
|
101
|
+
|
|
102
|
+
## elementResponseAttributes
|
|
103
|
+
|
|
104
|
+
| Type | Default |
|
|
105
|
+
| -- | -- |
|
|
106
|
+
| string | `type,label` |
|
|
107
|
+
|
|
108
|
+
Element attribute names to be included into the `findElement` response, as a comma-separated
|
|
109
|
+
list. The following values are supported: `type`, `name`, `label`, `text`, `rect`, `enabled`,
|
|
110
|
+
`displayed`, `selected`, `attribute/<attribute_name>`.
|
|
111
|
+
|
|
112
|
+
This setting only has an effect if the [`shouldUseCompactResponses`](#shouldusecompactresponses)
|
|
113
|
+
setting is set to `false`.
|
|
114
|
+
|
|
115
|
+
## enforceCustomSnapshots
|
|
116
|
+
|
|
117
|
+
| Type | Default |
|
|
118
|
+
| -- | -- |
|
|
119
|
+
| `boolean` | `false` |
|
|
120
|
+
|
|
121
|
+
Whether to instruct WebDriverAgent to always use use a customized snapshotting mechanism using
|
|
122
|
+
private XCTest APIs, as opposed to the
|
|
123
|
+
[standard `snapshotWithError`](https://developer.apple.com/documentation/xcuiautomation/xcuielementsnapshotproviding/snapshot())
|
|
124
|
+
approach.
|
|
125
|
+
|
|
126
|
+
By default, WebDriverAgent only uses the custom approach for some particular cases where standard
|
|
127
|
+
snapshots may provide unreliable or distorted results, but this may not cover all cases, for
|
|
128
|
+
example, [with custom keyboards](https://github.com/appium/WebDriverAgent/issues/1085). Setting
|
|
129
|
+
this value may help with handling such edge cases, though it may also result in snapshots being
|
|
130
|
+
slower and less memory efficient.
|
|
131
|
+
|
|
132
|
+
## includeCustomActionsInPageSource
|
|
133
|
+
|
|
134
|
+
| Type | Default |
|
|
135
|
+
| -- | -- |
|
|
136
|
+
| `boolean` | `false` |
|
|
137
|
+
|
|
138
|
+
Whether the [`customActions`](./element-attributes.md#customactions) attribute should be included
|
|
139
|
+
in the page source XML tree.
|
|
140
|
+
|
|
141
|
+
## includeHittableInPageSource
|
|
142
|
+
|
|
143
|
+
| Type | Default |
|
|
144
|
+
| -- | -- |
|
|
145
|
+
| `boolean` | `false` |
|
|
146
|
+
|
|
147
|
+
Whether the [`hittable`](./element-attributes.md#hittable) attribute should be included in the page
|
|
148
|
+
source XML tree.
|
|
149
|
+
|
|
150
|
+
## includeMinMaxValueInPageSource
|
|
151
|
+
|
|
152
|
+
| Type | Default |
|
|
153
|
+
| -- | -- |
|
|
154
|
+
| `boolean` | `false` |
|
|
155
|
+
|
|
156
|
+
Whether the [`minValue`](./element-attributes.md#minvalue) and [`maxValue`](./element-attributes.md#maxvalue)
|
|
157
|
+
attributes should be included in the page source XML tree.
|
|
158
|
+
|
|
159
|
+
## keyboardAutocorrection
|
|
160
|
+
|
|
161
|
+
| Type | Default |
|
|
162
|
+
| -- | -- |
|
|
163
|
+
| `boolean` | `false` |
|
|
164
|
+
|
|
165
|
+
Changes the system-wide "Auto-Correction" option (_Settings -> General -> Keyboard_).
|
|
166
|
+
|
|
167
|
+
## keyboardPrediction
|
|
168
|
+
|
|
169
|
+
| Type | Default |
|
|
170
|
+
| -- | -- |
|
|
171
|
+
| `boolean` | `false` |
|
|
172
|
+
|
|
173
|
+
Changes the system-wide "Predictive Text" option (_Settings -> General -> Keyboard_).
|
|
174
|
+
|
|
175
|
+
## limitXPathContextScope
|
|
176
|
+
|
|
177
|
+
| Type | Default |
|
|
178
|
+
| -- | -- |
|
|
179
|
+
| `boolean` | `true` |
|
|
180
|
+
|
|
181
|
+
Whether to limit the page source to the parent element when using scoped element searches.
|
|
182
|
+
|
|
183
|
+
This ensures that a chained query like `findElement(By.xpath, "//XCUIElementTypeAlert").findElement(By.xpath, "//XCUIElementTypeButton")`
|
|
184
|
+
correctly applies the parent scoped context, however, a query like `findElement(By.xpath, "//XCUIElementTypeButton").findElement(By.xpath, "./..")`
|
|
185
|
+
will fail, because the first half of it will only return descendants of the target element.
|
|
186
|
+
|
|
187
|
+
Disabling this setting would cause the latter query to no longer fail, but it will also cause the
|
|
188
|
+
former query to ignore the parent scoped context. You can use the `.` notation to adjust the scope
|
|
189
|
+
of the former query like so: `findElement(By.xpath, "//XCUIElementTypeAlert").findElement(By.xpath, ".//XCUIElementTypeButton")`
|
|
190
|
+
|
|
191
|
+
## maxTypingFrequency
|
|
192
|
+
|
|
193
|
+
| Type | Default |
|
|
194
|
+
| -- | -- |
|
|
195
|
+
| `int` | `60` |
|
|
196
|
+
|
|
197
|
+
Maximum frequency of keystrokes per minute, used for for typing and clearing text fields. Setting a
|
|
198
|
+
smaller value may help if your tests are failing due to typing errors.
|
|
199
|
+
|
|
200
|
+
## mjpegFixOrientation
|
|
201
|
+
|
|
202
|
+
| Type | Default |
|
|
203
|
+
| -- | -- |
|
|
204
|
+
| `boolean` | `true` |
|
|
205
|
+
|
|
206
|
+
Whether to automatically normalize the orientation of MJPEG frames so that they match the current
|
|
207
|
+
device orientation. Affects only the MJPEG screenshots broadcaster and does not change regular
|
|
208
|
+
screenshot responses. See the [MJPEG guide](../guides/mjpeg.md) for more details.
|
|
209
|
+
|
|
210
|
+
## mjpegServerFramerate
|
|
211
|
+
|
|
212
|
+
| Type | Default |
|
|
213
|
+
| -- | -- |
|
|
214
|
+
| `int` | `10` |
|
|
215
|
+
|
|
216
|
+
The maximum number of screenshots per second taken by the MJPEG screenshots broadcaster. Must be in
|
|
217
|
+
the range `1..60`. See the [MJPEG guide](../guides/mjpeg.md) for more details.
|
|
218
|
+
|
|
219
|
+
## mjpegServerScreenshotQuality
|
|
220
|
+
|
|
221
|
+
| Type | Default |
|
|
222
|
+
| -- | -- |
|
|
223
|
+
| `int` | `25` |
|
|
224
|
+
|
|
225
|
+
The JPEG compression factor applied to the screenshots generated by the MJPEG screenshots
|
|
226
|
+
broadcaster, as a percentage. Must be in range `1..100`. See the [MJPEG guide](../guides/mjpeg.md)
|
|
227
|
+
for more details.
|
|
228
|
+
|
|
229
|
+
## mjpegScalingFactor
|
|
230
|
+
|
|
231
|
+
| Type | Default |
|
|
232
|
+
| -- | -- |
|
|
233
|
+
| `float` | `100` |
|
|
234
|
+
|
|
235
|
+
The scaling factor of screenshots generated by the MJPEG screenshots broadcaster, as a percentage.
|
|
236
|
+
Must be in the range `1..100`. See the [MJPEG guide](../guides/mjpeg.md) for more details.
|
|
237
|
+
|
|
238
|
+
## nativeWebTap
|
|
239
|
+
|
|
240
|
+
| Type | Default |
|
|
241
|
+
| -- | -- |
|
|
242
|
+
| `boolean` | `false` |
|
|
243
|
+
|
|
244
|
+
Whether to use native, non-JavaScript-based tap functionality in webview context. Warning: sometimes
|
|
245
|
+
the preciseness of native taps could be broken, because there is no reliable way to map web element
|
|
246
|
+
coordinates to native ones.
|
|
247
|
+
|
|
248
|
+
This property can also be set using the [`appium:nativeWebTap`](./capabilities.md) capability.
|
|
249
|
+
|
|
250
|
+
## nativeWebTapSmartAppBannerVisibility
|
|
251
|
+
|
|
252
|
+
| Type | Default |
|
|
253
|
+
| -- | -- |
|
|
254
|
+
| `string` | `detect` |
|
|
255
|
+
|
|
256
|
+
The visibility state of the smart app banner. Setting this value may speed up tap actions in webview
|
|
257
|
+
context. Supported values are `detect`, `visible`, and `invisible`.
|
|
258
|
+
|
|
259
|
+
This setting only has an effect if the [`nativeWebTap`](#nativewebtap) and [`nativeWebTapStrict`](#nativewebtapstrict)
|
|
260
|
+
settings are both set to `true`.
|
|
261
|
+
|
|
262
|
+
## nativeWebTapStrict
|
|
263
|
+
|
|
264
|
+
| Type | Default |
|
|
265
|
+
| -- | -- |
|
|
266
|
+
| `boolean` | `false` |
|
|
267
|
+
|
|
268
|
+
Whether to skip additional logic that tries to match webview elements to native ones by using
|
|
269
|
+
their textual descriptions. Depending on the actual webview content, this algorithm might
|
|
270
|
+
sometimes be not very reliable, and may slow down each click, since a failure would cause the
|
|
271
|
+
driver to fallback to the default coordinates transformation flow.
|
|
272
|
+
|
|
273
|
+
It is advised to use this setting with the [`mobile: calibrateWebToRealCoordinatesTranslation`](./execute-methods.md)
|
|
274
|
+
execute method.
|
|
275
|
+
|
|
276
|
+
This setting only has an effect if the [`nativeWebTap`](#nativewebtap) setting is set to `true`.
|
|
277
|
+
|
|
278
|
+
This property can also be set using the [`appium:nativeWebTapStrict`](./capabilities.md) capability.
|
|
279
|
+
|
|
280
|
+
## nativeWebTapTabBarVisibility
|
|
281
|
+
|
|
282
|
+
| Type | Default |
|
|
283
|
+
| -- | -- |
|
|
284
|
+
| `string` | `detect` |
|
|
285
|
+
|
|
286
|
+
The visibility state of the browser tab bar. Setting this value may speed up tap actions in webview
|
|
287
|
+
context. Supported values are `detect`, `visible`, and `invisible`.
|
|
288
|
+
|
|
289
|
+
This setting only has an effect if the [`nativeWebTap`](#nativewebtap) and [`nativeWebTapStrict`](#nativewebtapstrict)
|
|
290
|
+
settings are both set to `true`.
|
|
291
|
+
|
|
292
|
+
## pageSourceExcludedAttributes
|
|
293
|
+
|
|
294
|
+
| Type | Default |
|
|
295
|
+
| -- | -- |
|
|
296
|
+
| `string` | `""` |
|
|
297
|
+
|
|
298
|
+
One or more comma-separated [attribute names](./element-attributes.md) to be excluded from the
|
|
299
|
+
application source. Excluding certain expensive attributes (e.g. `visible`) may speed up page
|
|
300
|
+
source retrieval.
|
|
301
|
+
|
|
302
|
+
If used in combination with [`useJSONSource`](#usejsonsource), only `frame`, `enabled`, `visible`,
|
|
303
|
+
`accessible` and `focused` attributes are supported.
|
|
304
|
+
|
|
305
|
+
## reduceMotion
|
|
306
|
+
|
|
307
|
+
| Type | Default |
|
|
308
|
+
| -- | -- |
|
|
309
|
+
| `boolean` | `false` |
|
|
310
|
+
|
|
311
|
+
Changes the system-wide "Reduce Motion" option (_Settings -> Accessibility -> Motion_).
|
|
312
|
+
|
|
313
|
+
## respectSystemAlerts
|
|
314
|
+
|
|
315
|
+
| Type | Default |
|
|
316
|
+
| -- | -- |
|
|
317
|
+
| `boolean` | `false` |
|
|
318
|
+
|
|
319
|
+
Whether to automatically switch the active application to the system springboard if a native alert
|
|
320
|
+
element is detected. Decreases the performance of the active app detection.
|
|
321
|
+
|
|
322
|
+
Currently the driver sets the app under test as active if XCTest identifies it as running in
|
|
323
|
+
foreground. The presence of a native alert element does not change the value returned by XCTest,
|
|
324
|
+
which results in the driver being blocked from interacting with the app. Changing this setting can
|
|
325
|
+
avoid such issues.
|
|
326
|
+
|
|
327
|
+
## safariTabBarPosition
|
|
328
|
+
|
|
329
|
+
| Type | Default |
|
|
330
|
+
| -- | -- |
|
|
331
|
+
| `string` | `bottom` for iPhones on iOS 15+, otherwise `top` |
|
|
332
|
+
|
|
333
|
+
The tab bar position in Safari. Supported values are `bottom` and `top`.
|
|
334
|
+
|
|
335
|
+
This setting only has an effect if the [`nativeWebTap`](#nativewebtap) setting is set to `true`.
|
|
336
|
+
|
|
337
|
+
## screenshotOrientation
|
|
338
|
+
|
|
339
|
+
| Type | Default |
|
|
340
|
+
| -- | -- |
|
|
341
|
+
| `string` | `auto` |
|
|
342
|
+
|
|
343
|
+
Overriden value for the screenshot orientation. Appium tries to return a screenshot and adjust its
|
|
344
|
+
orientation properly using internal heuristics, but sometimes it does not work, especially in
|
|
345
|
+
landscape mode. The actual screenshot orientation depends on various factors such as OS versions,
|
|
346
|
+
model versions and whether this is a real or simulator device.
|
|
347
|
+
|
|
348
|
+
The supported values are `auto`, `portrait`, `portraitUpsideDown`, `landscapeRight`, and
|
|
349
|
+
`landscapeLeft`.
|
|
350
|
+
|
|
351
|
+
## screenshotQuality
|
|
352
|
+
|
|
353
|
+
| Type | Default |
|
|
354
|
+
| -- | -- |
|
|
355
|
+
| `int` | `3` |
|
|
356
|
+
|
|
357
|
+
The quality of display screenshots. This value affects the screenshoting speed and the actual
|
|
358
|
+
quality of resulting screenshots.
|
|
359
|
+
|
|
360
|
+
The supported values are:
|
|
361
|
+
|
|
362
|
+
- `0` - lossless PNG
|
|
363
|
+
- `1` - high-quality JPEG
|
|
364
|
+
- `2` - low-quality JPEG
|
|
365
|
+
- `3` - lossless HEIC (fallbacks to PNG if hardware HEIC encoding is not supported)
|
|
366
|
+
|
|
367
|
+
This property can also be set using the [`appium:screenshotQuality`](./capabilities.md) capability.
|
|
368
|
+
|
|
369
|
+
## shouldUseCompactResponses
|
|
370
|
+
|
|
371
|
+
| Type | Default |
|
|
372
|
+
| -- | -- |
|
|
373
|
+
| `boolean` | `true` |
|
|
374
|
+
|
|
375
|
+
Setting this to `false` will cause the `findElement` response to include the attributes specified
|
|
376
|
+
by the [`elementResponseAttributes`](#elementresponseattributes) setting.
|
|
377
|
+
|
|
378
|
+
## skipDocumentsContainerCheck
|
|
379
|
+
|
|
380
|
+
| Type | Default |
|
|
381
|
+
| -- | -- |
|
|
382
|
+
| `boolean` | `false` |
|
|
383
|
+
|
|
384
|
+
Whether to treat `documents` container type during file management operations (pushing/pulling
|
|
385
|
+
to/from real devices) the same as other container types. For certain applications, having this
|
|
386
|
+
setting enabled helps to workaround documents upload issues if the `UIFileSharingEnabled` flag is
|
|
387
|
+
not active in the application manifest.
|
|
388
|
+
|
|
389
|
+
## snapshotMaxChildren
|
|
390
|
+
|
|
391
|
+
| Type | Default |
|
|
392
|
+
| -- | -- |
|
|
393
|
+
| `int` | `INT_MAX` (effectively unlimited) |
|
|
394
|
+
|
|
395
|
+
The maximum retrieved number of children for each element of the application source tree. Lower
|
|
396
|
+
values can help speed up source retrieval and prevent out of memory or timeout errors.
|
|
397
|
+
|
|
398
|
+
## snapshotMaxDepth
|
|
399
|
+
|
|
400
|
+
| Type | Default |
|
|
401
|
+
| -- | -- |
|
|
402
|
+
| `int` | `50` |
|
|
403
|
+
|
|
404
|
+
The maximum retrieved depth of the application source tree. Lower values can help speed up source
|
|
405
|
+
retrieval and prevent out of memory or timeout errors. Must be in range `1..62` (higher values are not
|
|
406
|
+
supported by XCTest).
|
|
407
|
+
|
|
408
|
+
Consider reducing this value in case of errors like _Timed out snapshotting com.apple.testmanagerd..._
|
|
409
|
+
or _Cannot get 'xml' source of the current application_ in your Appium log.
|
|
410
|
+
|
|
411
|
+
## useClearTextShortcut
|
|
412
|
+
|
|
413
|
+
| Type | Default |
|
|
414
|
+
| -- | -- |
|
|
415
|
+
| `boolean` | `true` |
|
|
416
|
+
|
|
417
|
+
Whether to use the IOHIDEvent operation for clearing text fields. Disabling this setting may be
|
|
418
|
+
useful for simulators in headless mode, as the simulator keyboard may otherwise no longer appear
|
|
419
|
+
(see [this issue](https://github.com/appium/appium/issues/20727) for more details).
|
|
420
|
+
|
|
421
|
+
## useFirstMatch
|
|
422
|
+
|
|
423
|
+
| Type | Default |
|
|
424
|
+
| -- | -- |
|
|
425
|
+
| `boolean` | `false` |
|
|
426
|
+
|
|
427
|
+
Enabling this setting can speed up lookup of single element, though nested element lookups may be
|
|
428
|
+
subject to a [known issue](https://github.com/appium/appium/issues/10101).
|
|
429
|
+
|
|
430
|
+
## useJSONSource
|
|
431
|
+
|
|
432
|
+
| Type | Default |
|
|
433
|
+
| -- | -- |
|
|
434
|
+
| `boolean` | `false` |
|
|
435
|
+
|
|
436
|
+
Whether to retrieve the application source from WebDriverAgent in JSON format, and transform it to
|
|
437
|
+
XML on the Appium server side, as opposed to retrieving the source from WebDriverAgent directly in
|
|
438
|
+
XML format.
|
|
439
|
+
|
|
440
|
+
This property can also be set using the [`appium:useJSONSource`](./capabilities.md) capability.
|
|
441
|
+
|
|
442
|
+
## waitForIdleTimeout
|
|
443
|
+
|
|
444
|
+
| Type | Default |
|
|
445
|
+
| -- | -- |
|
|
446
|
+
| `float` | `10` |
|
|
447
|
+
|
|
448
|
+
The amount of time in seconds to wait until the application under test is idling. XCTest requires
|
|
449
|
+
the app's main thread to be idling in order to execute any action on it, so WebDriverAgent might
|
|
450
|
+
not even start/freeze if the app under test is constantly hogging the main thread.
|
|
451
|
+
|
|
452
|
+
Setting this value to `0` disables idling checks completely (not recommended).
|
|
453
|
+
|
|
454
|
+
This property can also be set using the [`appium:waitForIdleTimeout`](./capabilities.md) capability.
|
|
455
|
+
|
|
456
|
+
## webScreenshotMode
|
|
457
|
+
|
|
458
|
+
| Type | Default |
|
|
459
|
+
| -- | -- |
|
|
460
|
+
| `string` | `native` |
|
|
461
|
+
|
|
462
|
+
The screenshoting logic in web context. The following values are supported:
|
|
463
|
+
|
|
464
|
+
- `native` - screenshots are taken using WDA and capture the full device screen (including status
|
|
465
|
+
bars)
|
|
466
|
+
- `page` - screenshots try to include the entire active web page
|
|
467
|
+
- `viewport` - screenshots only include the visible viewport
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: XPath Extension Functions
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Starting with [WebDriverAgent 13.2.0](https://github.com/appium/WebDriverAgent/releases/tag/v13.2.0)
|
|
6
|
+
([appium/WebDriverAgent#1144](https://github.com/appium/WebDriverAgent/pull/1144)), the XCUITest
|
|
7
|
+
driver's XPath locator strategy supports XPath 2–style **string extension functions** on top of the
|
|
8
|
+
existing XPath 1.0 evaluator. They are evaluated inside WebDriverAgent (libxml2) and work in both
|
|
9
|
+
standalone expressions and predicates inside element queries.
|
|
10
|
+
|
|
11
|
+
!!! info "XPath 1.0 baseline"
|
|
12
|
+
|
|
13
|
+
The underlying engine is still XPath 1.0. Only the functions listed below are added; full XPath
|
|
14
|
+
2.0 syntax is not supported. See [Locator Strategies](./locator-strategies.md#xpath) for general
|
|
15
|
+
XPath usage notes and performance guidance.
|
|
16
|
+
|
|
17
|
+
!!! warning "WebDriverAgent version"
|
|
18
|
+
|
|
19
|
+
These functions require WebDriverAgent **13.2.0 or newer**. The driver bundles WDA via the
|
|
20
|
+
[`appium-webdriveragent`](https://www.npmjs.com/package/appium-webdriveragent) dependency. If you
|
|
21
|
+
manage WDA yourself (prebuilt, preinstalled, or `appium:webDriverAgentUrl`), ensure the running
|
|
22
|
+
WDA build includes this release.
|
|
23
|
+
|
|
24
|
+
## Quick examples
|
|
25
|
+
|
|
26
|
+
=== "Java"
|
|
27
|
+
|
|
28
|
+
```java
|
|
29
|
+
// Case-insensitive label match
|
|
30
|
+
driver.findElement(AppiumBy.xpath(
|
|
31
|
+
"//XCUIElementTypeButton[matches(@label, '^alerts$', 'i')]"));
|
|
32
|
+
|
|
33
|
+
// Case-normalized equality
|
|
34
|
+
driver.findElement(AppiumBy.xpath(
|
|
35
|
+
"//XCUIElementTypeButton[lower-case(@label) = 'alerts']"));
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
=== "JavaScript (WebdriverIO)"
|
|
39
|
+
|
|
40
|
+
```javascript
|
|
41
|
+
await $('//XCUIElementTypeButton[ends-with(@label, "ing")]').click();
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
=== "Python"
|
|
45
|
+
|
|
46
|
+
```python
|
|
47
|
+
driver.find_element(
|
|
48
|
+
AppiumBy.XPATH,
|
|
49
|
+
'//XCUIElementTypeButton[replace(@label, " ", "") = "Deadlockapp"]',
|
|
50
|
+
)
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## `matches`
|
|
54
|
+
|
|
55
|
+
Tests whether a string matches a regular expression.
|
|
56
|
+
|
|
57
|
+
**Signature:** `matches(input, pattern)` or `matches(input, pattern, flags)`
|
|
58
|
+
|
|
59
|
+
**Returns:** `boolean`
|
|
60
|
+
|
|
61
|
+
| Argument | Description |
|
|
62
|
+
| --- | --- |
|
|
63
|
+
| `input` | String to test (often an attribute, e.g. `@label`) |
|
|
64
|
+
| `pattern` | Regular expression ([`NSRegularExpression`](https://developer.apple.com/documentation/foundation/nsregularexpression)) |
|
|
65
|
+
| `flags` | Optional. Supported: `i` (case-insensitive), `m`, `s`, `x` |
|
|
66
|
+
|
|
67
|
+
```xpath
|
|
68
|
+
//XCUIElementTypeButton[matches(@label, '^Alerts$')]
|
|
69
|
+
//XCUIElementTypeButton[matches(@label, '^alerts$', 'i')]
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## `ends-with`
|
|
73
|
+
|
|
74
|
+
Tests whether a string ends with a given suffix (literal suffix, not a regex).
|
|
75
|
+
|
|
76
|
+
**Signature:** `ends-with(input, suffix)`
|
|
77
|
+
|
|
78
|
+
**Returns:** `boolean`
|
|
79
|
+
|
|
80
|
+
```xpath
|
|
81
|
+
//XCUIElementTypeButton[ends-with(@label, 'ing')]
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## `lower-case` / `upper-case`
|
|
85
|
+
|
|
86
|
+
Convert a string to lowercase or uppercase using the system locale rules.
|
|
87
|
+
|
|
88
|
+
**Signature:** `lower-case(input)` / `upper-case(input)`
|
|
89
|
+
|
|
90
|
+
**Returns:** `string`
|
|
91
|
+
|
|
92
|
+
```xpath
|
|
93
|
+
//XCUIElementTypeButton[lower-case(@label) = 'alerts']
|
|
94
|
+
//XCUIElementTypeButton[upper-case(@label) = 'TOUCH']
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
## `replace`
|
|
98
|
+
|
|
99
|
+
Replaces substrings that match a regular expression with a replacement template.
|
|
100
|
+
|
|
101
|
+
**Signature:** `replace(input, pattern, replacement)` or `replace(input, pattern, replacement, flags)`
|
|
102
|
+
|
|
103
|
+
**Returns:** `string`
|
|
104
|
+
|
|
105
|
+
| Argument | Description |
|
|
106
|
+
| --- | --- |
|
|
107
|
+
| `input` | Source string |
|
|
108
|
+
| `pattern` | Regular expression |
|
|
109
|
+
| `replacement` | Replacement template (same semantics as `NSRegularExpression` replacement) |
|
|
110
|
+
| `flags` | Optional. Supported: `i`, `m`, `s`, `x`, `q` |
|
|
111
|
+
|
|
112
|
+
```xpath
|
|
113
|
+
//XCUIElementTypeButton[replace(@label, ' ', '') = 'Deadlockapp']
|
|
114
|
+
replace(//XCUIElementTypeOther/@value, '-', '_')
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
## `tokenize` and `string-join`
|
|
118
|
+
|
|
119
|
+
Split a string into parts and join them with a separator. These are intended to be used together:
|
|
120
|
+
`tokenize` produces an internal token sequence that `string-join` consumes (this avoids temporary
|
|
121
|
+
XML node-sets in the XPath 1.0 engine).
|
|
122
|
+
|
|
123
|
+
**`tokenize` signature:** `tokenize(input)` or `tokenize(input, pattern)`
|
|
124
|
+
|
|
125
|
+
**`string-join` signature:** `string-join(sequence, separator)`
|
|
126
|
+
|
|
127
|
+
**Returns:** `string` (from `string-join`)
|
|
128
|
+
|
|
129
|
+
| `tokenize` form | Behavior |
|
|
130
|
+
| --- | --- |
|
|
131
|
+
| `tokenize(input)` | Split on whitespace (non-empty tokens) |
|
|
132
|
+
| `tokenize(input, '')` | Split into Unicode extended grapheme clusters |
|
|
133
|
+
| `tokenize(input, pattern)` | Split using the regex `pattern` as delimiter |
|
|
134
|
+
|
|
135
|
+
```xpath
|
|
136
|
+
string-join(tokenize(//XCUIElementTypeOther/@value, '-'), '|')
|
|
137
|
+
//XCUIElementTypeButton[string-join(tokenize(@label, ' '), '-') = 'Deadlock-app']
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
## Regular expression flags
|
|
141
|
+
|
|
142
|
+
| Flag | `matches` | `replace` | Meaning |
|
|
143
|
+
| --- | --- | --- | --- |
|
|
144
|
+
| `i` | yes | yes | Case-insensitive |
|
|
145
|
+
| `m` | yes | yes | Multiline (`^` / `$` match line boundaries) |
|
|
146
|
+
| `s` | yes | yes | Dot matches newlines |
|
|
147
|
+
| `x` | yes | yes | Ignore whitespace in the pattern |
|
|
148
|
+
| `q` | no | yes | Quote metacharacters (literal pattern) |
|
|
149
|
+
|
|
150
|
+
Invalid flag combinations cause the XPath expression to fail evaluation.
|
|
151
|
+
|
|
152
|
+
## Error handling
|
|
153
|
+
|
|
154
|
+
- **Invalid arity** (wrong number of arguments) fails the XPath evaluation.
|
|
155
|
+
- **Invalid regular expressions** or **invalid flags** fail the XPath evaluation.
|
|
156
|
+
- When used for element lookup, failures surface as an invalid XPath error from WebDriverAgent
|
|
157
|
+
(`FBInvalidXPathException`).
|
|
158
|
+
|
|
159
|
+
Prefer [predicate string](./ios-predicate.md) or [class chain](./locator-strategies.md#class-chain)
|
|
160
|
+
locators when they can express the same condition; XPath remains the slowest strategy, even with
|
|
161
|
+
these helpers.
|
|
162
|
+
|
|
163
|
+
## More information
|
|
164
|
+
|
|
165
|
+
- [WebDriverAgent PR #1144](https://github.com/appium/WebDriverAgent/pull/1144) — implementation and tests
|
|
166
|
+
- [Locator Strategies](./locator-strategies.md) — strategy overview and performance notes
|
|
167
|
+
- [Element Attributes](./element-attributes.md) — attribute names available in XPath (`@label`, `@name`, etc.)
|