appium-mcp 0.0.1 → 1.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (585) hide show
  1. package/.github/workflows/ci.yml +37 -0
  2. package/.github/workflows/pr-title.yml +15 -0
  3. package/.github/workflows/publish.yml +31 -0
  4. package/.gitmodules +9 -0
  5. package/.prettierignore +29 -0
  6. package/.prettierrc +10 -0
  7. package/.releaserc +37 -0
  8. package/CHANGELOG.md +37 -0
  9. package/LICENSE +21 -0
  10. package/README.md +153 -0
  11. package/dist/devicemanager/adb-manager.d.ts +71 -0
  12. package/dist/devicemanager/adb-manager.js +140 -0
  13. package/dist/devicemanager/adb-manager.js.map +1 -0
  14. package/dist/devicemanager/ios-manager.d.ts +58 -0
  15. package/dist/devicemanager/ios-manager.js +122 -0
  16. package/dist/devicemanager/ios-manager.js.map +1 -0
  17. package/dist/index.d.ts +2 -0
  18. package/dist/index.js +40 -0
  19. package/dist/index.js.map +1 -0
  20. package/dist/locators/element-filter.d.ts +13 -0
  21. package/dist/locators/element-filter.js +79 -0
  22. package/dist/locators/element-filter.js.map +1 -0
  23. package/dist/locators/generate-all-locators.d.ts +21 -0
  24. package/dist/locators/generate-all-locators.js +72 -0
  25. package/dist/locators/generate-all-locators.js.map +1 -0
  26. package/dist/locators/locator-generation.d.ts +36 -0
  27. package/dist/locators/locator-generation.js +501 -0
  28. package/dist/locators/locator-generation.js.map +1 -0
  29. package/dist/locators/logger.d.ts +5 -0
  30. package/dist/locators/logger.js +9 -0
  31. package/dist/locators/logger.js.map +1 -0
  32. package/dist/locators/source-parsing.d.ts +43 -0
  33. package/dist/locators/source-parsing.js +100 -0
  34. package/dist/locators/source-parsing.js.map +1 -0
  35. package/dist/resources/index.d.ts +1 -0
  36. package/dist/resources/index.js +7 -0
  37. package/dist/resources/index.js.map +1 -0
  38. package/dist/resources/java/template.d.ts +4 -0
  39. package/dist/resources/java/template.js +82 -0
  40. package/dist/resources/java/template.js.map +1 -0
  41. package/dist/schema.d.ts +2 -0
  42. package/dist/schema.js +5 -0
  43. package/dist/schema.js.map +1 -0
  44. package/dist/scripts/simple-index-documentation.d.ts +20 -0
  45. package/dist/scripts/simple-index-documentation.js +77 -0
  46. package/dist/scripts/simple-index-documentation.js.map +1 -0
  47. package/dist/scripts/simple-query-documentation.d.ts +12 -0
  48. package/dist/scripts/simple-query-documentation.js +52 -0
  49. package/dist/scripts/simple-query-documentation.js.map +1 -0
  50. package/dist/server.d.ts +3 -0
  51. package/dist/server.js +37 -0
  52. package/dist/server.js.map +1 -0
  53. package/dist/tests/__mocks__/@appium/support.d.ts +21 -0
  54. package/dist/tests/__mocks__/@appium/support.js +30 -0
  55. package/dist/tests/__mocks__/@appium/support.js.map +1 -0
  56. package/dist/tests/generate-all-locators.test.d.ts +1 -0
  57. package/dist/tests/generate-all-locators.test.js +140 -0
  58. package/dist/tests/generate-all-locators.test.js.map +1 -0
  59. package/dist/tests/test-setup-wda.d.ts +1 -0
  60. package/dist/tests/test-setup-wda.js +202 -0
  61. package/dist/tests/test-setup-wda.js.map +1 -0
  62. package/dist/tools/answer-appium.d.ts +1 -0
  63. package/dist/tools/answer-appium.js +71 -0
  64. package/dist/tools/answer-appium.js.map +1 -0
  65. package/dist/tools/boot-simulator.d.ts +1 -0
  66. package/dist/tools/boot-simulator.js +71 -0
  67. package/dist/tools/boot-simulator.js.map +1 -0
  68. package/dist/tools/create-session.d.ts +1 -0
  69. package/dist/tools/create-session.js +192 -0
  70. package/dist/tools/create-session.js.map +1 -0
  71. package/dist/tools/delete-session.d.ts +1 -0
  72. package/dist/tools/delete-session.js +47 -0
  73. package/dist/tools/delete-session.js.map +1 -0
  74. package/dist/tools/documentation/index.d.ts +28 -0
  75. package/dist/tools/documentation/index.js +63 -0
  76. package/dist/tools/documentation/index.js.map +1 -0
  77. package/dist/tools/documentation/reasoning-rag.d.ts +88 -0
  78. package/dist/tools/documentation/reasoning-rag.js +281 -0
  79. package/dist/tools/documentation/reasoning-rag.js.map +1 -0
  80. package/dist/tools/documentation/sentence-transformers-embeddings.d.ts +34 -0
  81. package/dist/tools/documentation/sentence-transformers-embeddings.js +111 -0
  82. package/dist/tools/documentation/sentence-transformers-embeddings.js.map +1 -0
  83. package/dist/tools/documentation/simple-pdf-indexer.d.ts +45 -0
  84. package/dist/tools/documentation/simple-pdf-indexer.js +402 -0
  85. package/dist/tools/documentation/simple-pdf-indexer.js.map +1 -0
  86. package/dist/tools/documentation/uploads/documents.json +1 -0
  87. package/dist/tools/generate-tests.d.ts +2 -0
  88. package/dist/tools/generate-tests.js +46 -0
  89. package/dist/tools/generate-tests.js.map +1 -0
  90. package/dist/tools/index.d.ts +16 -0
  91. package/dist/tools/index.js +112 -0
  92. package/dist/tools/index.js.map +1 -0
  93. package/dist/tools/install-wda.d.ts +1 -0
  94. package/dist/tools/install-wda.js +219 -0
  95. package/dist/tools/install-wda.js.map +1 -0
  96. package/dist/tools/interactions/activate-app.d.ts +2 -0
  97. package/dist/tools/interactions/activate-app.js +44 -0
  98. package/dist/tools/interactions/activate-app.js.map +1 -0
  99. package/dist/tools/interactions/click.d.ts +2 -0
  100. package/dist/tools/interactions/click.js +45 -0
  101. package/dist/tools/interactions/click.js.map +1 -0
  102. package/dist/tools/interactions/double-tap.d.ts +2 -0
  103. package/dist/tools/interactions/double-tap.js +81 -0
  104. package/dist/tools/interactions/double-tap.js.map +1 -0
  105. package/dist/tools/interactions/find.d.ts +13 -0
  106. package/dist/tools/interactions/find.js +55 -0
  107. package/dist/tools/interactions/find.js.map +1 -0
  108. package/dist/tools/interactions/get-text.d.ts +2 -0
  109. package/dist/tools/interactions/get-text.js +45 -0
  110. package/dist/tools/interactions/get-text.js.map +1 -0
  111. package/dist/tools/interactions/install-app.d.ts +2 -0
  112. package/dist/tools/interactions/install-app.js +43 -0
  113. package/dist/tools/interactions/install-app.js.map +1 -0
  114. package/dist/tools/interactions/list-apps.d.ts +2 -0
  115. package/dist/tools/interactions/list-apps.js +59 -0
  116. package/dist/tools/interactions/list-apps.js.map +1 -0
  117. package/dist/tools/interactions/screenshot.d.ts +2 -0
  118. package/dist/tools/interactions/screenshot.js +49 -0
  119. package/dist/tools/interactions/screenshot.js.map +1 -0
  120. package/dist/tools/interactions/set-value.d.ts +2 -0
  121. package/dist/tools/interactions/set-value.js +46 -0
  122. package/dist/tools/interactions/set-value.js.map +1 -0
  123. package/dist/tools/interactions/terminate-app.d.ts +2 -0
  124. package/dist/tools/interactions/terminate-app.js +45 -0
  125. package/dist/tools/interactions/terminate-app.js.map +1 -0
  126. package/dist/tools/interactions/uninstall-app.d.ts +2 -0
  127. package/dist/tools/interactions/uninstall-app.js +45 -0
  128. package/dist/tools/interactions/uninstall-app.js.map +1 -0
  129. package/dist/tools/locators.d.ts +1 -0
  130. package/dist/tools/locators.js +71 -0
  131. package/dist/tools/locators.js.map +1 -0
  132. package/dist/tools/scroll-to-element.d.ts +1 -0
  133. package/dist/tools/scroll-to-element.js +155 -0
  134. package/dist/tools/scroll-to-element.js.map +1 -0
  135. package/dist/tools/scroll.d.ts +1 -0
  136. package/dist/tools/scroll.js +91 -0
  137. package/dist/tools/scroll.js.map +1 -0
  138. package/dist/tools/select-device.d.ts +5 -0
  139. package/dist/tools/select-device.js +222 -0
  140. package/dist/tools/select-device.js.map +1 -0
  141. package/dist/tools/select-platform.d.ts +1 -0
  142. package/dist/tools/select-platform.js +195 -0
  143. package/dist/tools/select-platform.js.map +1 -0
  144. package/dist/tools/session-store.d.ts +7 -0
  145. package/dist/tools/session-store.js +64 -0
  146. package/dist/tools/session-store.js.map +1 -0
  147. package/dist/tools/setup-wda.d.ts +1 -0
  148. package/dist/tools/setup-wda.js +177 -0
  149. package/dist/tools/setup-wda.js.map +1 -0
  150. package/docs/CONTRIBUTING.md +424 -0
  151. package/eslint.config.js +49 -0
  152. package/examples/android-gmail.md +7 -0
  153. package/examples/android-todo-app.md +9 -0
  154. package/jest.config.js +23 -0
  155. package/package.json +71 -6
  156. package/scripts/setup-submodules-sparse.sh +53 -0
  157. package/scripts/update-submodules.sh +14 -0
  158. package/src/devicemanager/adb-manager.ts +164 -0
  159. package/src/devicemanager/ios-manager.ts +145 -0
  160. package/src/index.ts +47 -0
  161. package/src/locators/element-filter.ts +134 -0
  162. package/src/locators/generate-all-locators.ts +149 -0
  163. package/src/locators/locator-generation.ts +657 -0
  164. package/src/locators/logger.ts +11 -0
  165. package/src/locators/source-parsing.ts +149 -0
  166. package/src/resources/caps.json +697 -0
  167. package/src/resources/index.ts +7 -0
  168. package/src/resources/java/template.ts +83 -0
  169. package/src/resources/submodules/appium/.github/PULL_REQUEST_TEMPLATE.md +28 -0
  170. package/src/resources/submodules/appium/CHANGELOG.md +45 -0
  171. package/src/resources/submodules/appium/CONDUCT.md +48 -0
  172. package/src/resources/submodules/appium/GOVERNANCE.md +185 -0
  173. package/src/resources/submodules/appium/IDEAS.md +16 -0
  174. package/src/resources/submodules/appium/README.md +221 -0
  175. package/src/resources/submodules/appium/ROADMAP.md +30 -0
  176. package/src/resources/submodules/appium/SPONSORS.md +3 -0
  177. package/src/resources/submodules/appium/docs/README.md +6 -0
  178. package/src/resources/submodules/appium/docs/payout.md +35 -0
  179. package/src/resources/submodules/appium/packages/appium/CHANGELOG.md +1437 -0
  180. package/src/resources/submodules/appium/packages/appium/README.md +221 -0
  181. package/src/resources/submodules/appium/packages/appium/docs/en/blog/index.md +2 -0
  182. package/src/resources/submodules/appium/packages/appium/docs/en/blog/posts/announcing-appiumconf2024.md +45 -0
  183. package/src/resources/submodules/appium/packages/appium/docs/en/blog/posts/announcing-browserstack-as-strategic-partner.md +46 -0
  184. package/src/resources/submodules/appium/packages/appium/docs/en/blog/posts/announcing-headspin-as-development-partner.md +47 -0
  185. package/src/resources/submodules/appium/packages/appium/docs/en/blog/posts/announcing-lambdatest-as-strategic-partner.md +42 -0
  186. package/src/resources/submodules/appium/packages/appium/docs/en/blog/posts/announcing-sauce-labs-as-strategic-partner.md +36 -0
  187. package/src/resources/submodules/appium/packages/appium/docs/en/blog/posts/announcing-sponsorship-program.md +48 -0
  188. package/src/resources/submodules/appium/packages/appium/docs/en/blog/posts/appium3.md +40 -0
  189. package/src/resources/submodules/appium/packages/appium/docs/en/blog/posts/hello-world.md +15 -0
  190. package/src/resources/submodules/appium/packages/appium/docs/en/contributing/index.md +150 -0
  191. package/src/resources/submodules/appium/packages/appium/docs/en/developing/build-docs.md +86 -0
  192. package/src/resources/submodules/appium/packages/appium/docs/en/developing/build-doctor-checks.md +141 -0
  193. package/src/resources/submodules/appium/packages/appium/docs/en/developing/build-drivers.md +860 -0
  194. package/src/resources/submodules/appium/packages/appium/docs/en/developing/build-plugins.md +514 -0
  195. package/src/resources/submodules/appium/packages/appium/docs/en/developing/config-system.md +451 -0
  196. package/src/resources/submodules/appium/packages/appium/docs/en/developing/index.md +18 -0
  197. package/src/resources/submodules/appium/packages/appium/docs/en/developing/sensitive.md +49 -0
  198. package/src/resources/submodules/appium/packages/appium/docs/en/ecosystem/clients.md +132 -0
  199. package/src/resources/submodules/appium/packages/appium/docs/en/ecosystem/drivers.md +207 -0
  200. package/src/resources/submodules/appium/packages/appium/docs/en/ecosystem/index.md +45 -0
  201. package/src/resources/submodules/appium/packages/appium/docs/en/ecosystem/plugins.md +138 -0
  202. package/src/resources/submodules/appium/packages/appium/docs/en/ecosystem/tools.md +83 -0
  203. package/src/resources/submodules/appium/packages/appium/docs/en/guides/branch-testing.md +57 -0
  204. package/src/resources/submodules/appium/packages/appium/docs/en/guides/caching.md +76 -0
  205. package/src/resources/submodules/appium/packages/appium/docs/en/guides/caps.md +275 -0
  206. package/src/resources/submodules/appium/packages/appium/docs/en/guides/config.md +98 -0
  207. package/src/resources/submodules/appium/packages/appium/docs/en/guides/context.md +44 -0
  208. package/src/resources/submodules/appium/packages/appium/docs/en/guides/event-timing.md +73 -0
  209. package/src/resources/submodules/appium/packages/appium/docs/en/guides/execute-methods.md +122 -0
  210. package/src/resources/submodules/appium/packages/appium/docs/en/guides/grid.md +166 -0
  211. package/src/resources/submodules/appium/packages/appium/docs/en/guides/headers.md +17 -0
  212. package/src/resources/submodules/appium/packages/appium/docs/en/guides/log-filters.md +86 -0
  213. package/src/resources/submodules/appium/packages/appium/docs/en/guides/managing-exts.md +87 -0
  214. package/src/resources/submodules/appium/packages/appium/docs/en/guides/migrating-1-to-2.md +368 -0
  215. package/src/resources/submodules/appium/packages/appium/docs/en/guides/migrating-2-to-3.md +464 -0
  216. package/src/resources/submodules/appium/packages/appium/docs/en/guides/security.md +89 -0
  217. package/src/resources/submodules/appium/packages/appium/docs/en/guides/settings.md +68 -0
  218. package/src/resources/submodules/appium/packages/appium/docs/en/guides/tls.md +42 -0
  219. package/src/resources/submodules/appium/packages/appium/docs/en/index.md +59 -0
  220. package/src/resources/submodules/appium/packages/appium/docs/en/intro/appium.md +202 -0
  221. package/src/resources/submodules/appium/packages/appium/docs/en/intro/clients.md +127 -0
  222. package/src/resources/submodules/appium/packages/appium/docs/en/intro/drivers.md +188 -0
  223. package/src/resources/submodules/appium/packages/appium/docs/en/intro/history.md +196 -0
  224. package/src/resources/submodules/appium/packages/appium/docs/en/intro/index.md +39 -0
  225. package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/index.md +29 -0
  226. package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/install.md +50 -0
  227. package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/next-steps.md +23 -0
  228. package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/requirements.md +29 -0
  229. package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/test-dotnet.md +105 -0
  230. package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/test-java.md +23 -0
  231. package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/test-js.md +75 -0
  232. package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/test-py.md +60 -0
  233. package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/test-rb.md +83 -0
  234. package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/uiauto2-driver.md +144 -0
  235. package/src/resources/submodules/appium/packages/appium/docs/en/reference/api/appium.md +394 -0
  236. package/src/resources/submodules/appium/packages/appium/docs/en/reference/api/bidi.md +70 -0
  237. package/src/resources/submodules/appium/packages/appium/docs/en/reference/api/index.md +30 -0
  238. package/src/resources/submodules/appium/packages/appium/docs/en/reference/api/jsonwp.md +214 -0
  239. package/src/resources/submodules/appium/packages/appium/docs/en/reference/api/mjsonwp.md +151 -0
  240. package/src/resources/submodules/appium/packages/appium/docs/en/reference/api/others.md +671 -0
  241. package/src/resources/submodules/appium/packages/appium/docs/en/reference/api/plugins.md +289 -0
  242. package/src/resources/submodules/appium/packages/appium/docs/en/reference/api/webdriver.md +1114 -0
  243. package/src/resources/submodules/appium/packages/appium/docs/en/reference/cli/env-vars.md +31 -0
  244. package/src/resources/submodules/appium/packages/appium/docs/en/reference/cli/extensions.md +239 -0
  245. package/src/resources/submodules/appium/packages/appium/docs/en/reference/cli/index.md +35 -0
  246. package/src/resources/submodules/appium/packages/appium/docs/en/reference/cli/server.md +76 -0
  247. package/src/resources/submodules/appium/packages/appium/docs/en/reference/cli/setup.md +76 -0
  248. package/src/resources/submodules/appium/packages/appium/docs/en/reference/index.md +25 -0
  249. package/src/resources/submodules/appium/packages/appium/docs/en/resources/index.md +28 -0
  250. package/src/resources/submodules/appium/packages/appium/docs/en/sponsors/index.md +64 -0
  251. package/src/resources/submodules/appium/packages/appium/docs/ja/blog/index.md +2 -0
  252. package/src/resources/submodules/appium/packages/appium/docs/ja/blog/posts/announcing-appiumconf2024.md +45 -0
  253. package/src/resources/submodules/appium/packages/appium/docs/ja/blog/posts/announcing-browserstack-as-strategic-partner.md +46 -0
  254. package/src/resources/submodules/appium/packages/appium/docs/ja/blog/posts/announcing-headspin-as-development-partner.md +47 -0
  255. package/src/resources/submodules/appium/packages/appium/docs/ja/blog/posts/announcing-lambdatest-as-strategic-partner.md +41 -0
  256. package/src/resources/submodules/appium/packages/appium/docs/ja/blog/posts/announcing-sauce-labs-as-strategic-partner.md +36 -0
  257. package/src/resources/submodules/appium/packages/appium/docs/ja/blog/posts/announcing-sponsorship-program.md +48 -0
  258. package/src/resources/submodules/appium/packages/appium/docs/ja/blog/posts/appium3.md +40 -0
  259. package/src/resources/submodules/appium/packages/appium/docs/ja/blog/posts/hello-world.md +15 -0
  260. package/src/resources/submodules/appium/packages/appium/docs/ja/contributing/index.md +158 -0
  261. package/src/resources/submodules/appium/packages/appium/docs/ja/developing/build-docs.md +86 -0
  262. package/src/resources/submodules/appium/packages/appium/docs/ja/developing/build-doctor-checks.md +141 -0
  263. package/src/resources/submodules/appium/packages/appium/docs/ja/developing/build-drivers.md +866 -0
  264. package/src/resources/submodules/appium/packages/appium/docs/ja/developing/build-plugins.md +520 -0
  265. package/src/resources/submodules/appium/packages/appium/docs/ja/developing/config-system.md +468 -0
  266. package/src/resources/submodules/appium/packages/appium/docs/ja/developing/index.md +18 -0
  267. package/src/resources/submodules/appium/packages/appium/docs/ja/developing/sensitive.md +49 -0
  268. package/src/resources/submodules/appium/packages/appium/docs/ja/ecosystem/clients.md +143 -0
  269. package/src/resources/submodules/appium/packages/appium/docs/ja/ecosystem/drivers.md +219 -0
  270. package/src/resources/submodules/appium/packages/appium/docs/ja/ecosystem/index.md +45 -0
  271. package/src/resources/submodules/appium/packages/appium/docs/ja/ecosystem/plugins.md +140 -0
  272. package/src/resources/submodules/appium/packages/appium/docs/ja/ecosystem/tools.md +87 -0
  273. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/branch-testing.md +57 -0
  274. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/caching.md +78 -0
  275. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/caps.md +259 -0
  276. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/config.md +102 -0
  277. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/context.md +44 -0
  278. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/event-timing.md +75 -0
  279. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/execute-methods.md +142 -0
  280. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/grid.md +166 -0
  281. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/headers.md +17 -0
  282. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/log-filters.md +86 -0
  283. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/managing-exts.md +89 -0
  284. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/migrating-1-to-2.md +402 -0
  285. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/migrating-2-to-3.md +458 -0
  286. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/security.md +89 -0
  287. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/settings.md +70 -0
  288. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/tls.md +43 -0
  289. package/src/resources/submodules/appium/packages/appium/docs/ja/index.md +55 -0
  290. package/src/resources/submodules/appium/packages/appium/docs/ja/intro/appium.md +191 -0
  291. package/src/resources/submodules/appium/packages/appium/docs/ja/intro/clients.md +139 -0
  292. package/src/resources/submodules/appium/packages/appium/docs/ja/intro/drivers.md +188 -0
  293. package/src/resources/submodules/appium/packages/appium/docs/ja/intro/history.md +196 -0
  294. package/src/resources/submodules/appium/packages/appium/docs/ja/intro/index.md +39 -0
  295. package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/index.md +23 -0
  296. package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/install.md +47 -0
  297. package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/next-steps.md +19 -0
  298. package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/requirements.md +29 -0
  299. package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/test-dotnet.md +107 -0
  300. package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/test-java.md +23 -0
  301. package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/test-js.md +77 -0
  302. package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/test-py.md +63 -0
  303. package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/test-rb.md +85 -0
  304. package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/uiauto2-driver.md +148 -0
  305. package/src/resources/submodules/appium/packages/appium/docs/ja/reference/api/appium.md +395 -0
  306. package/src/resources/submodules/appium/packages/appium/docs/ja/reference/api/bidi.md +71 -0
  307. package/src/resources/submodules/appium/packages/appium/docs/ja/reference/api/index.md +30 -0
  308. package/src/resources/submodules/appium/packages/appium/docs/ja/reference/api/jsonwp.md +215 -0
  309. package/src/resources/submodules/appium/packages/appium/docs/ja/reference/api/mjsonwp.md +152 -0
  310. package/src/resources/submodules/appium/packages/appium/docs/ja/reference/api/others.md +672 -0
  311. package/src/resources/submodules/appium/packages/appium/docs/ja/reference/api/plugins.md +291 -0
  312. package/src/resources/submodules/appium/packages/appium/docs/ja/reference/api/webdriver.md +1114 -0
  313. package/src/resources/submodules/appium/packages/appium/docs/ja/reference/cli/env-vars.md +31 -0
  314. package/src/resources/submodules/appium/packages/appium/docs/ja/reference/cli/extensions.md +240 -0
  315. package/src/resources/submodules/appium/packages/appium/docs/ja/reference/cli/index.md +35 -0
  316. package/src/resources/submodules/appium/packages/appium/docs/ja/reference/cli/server.md +76 -0
  317. package/src/resources/submodules/appium/packages/appium/docs/ja/reference/cli/setup.md +78 -0
  318. package/src/resources/submodules/appium/packages/appium/docs/ja/reference/index.md +25 -0
  319. package/src/resources/submodules/appium/packages/appium/docs/ja/resources/index.md +28 -0
  320. package/src/resources/submodules/appium/packages/appium/docs/ja/sponsors/index.md +61 -0
  321. package/src/resources/submodules/appium/packages/appium/docs/overrides/assets/images/appium-logo-horiz-white.png +0 -0
  322. package/src/resources/submodules/appium/packages/appium/docs/overrides/assets/images/appium-logo-horiz.png +0 -0
  323. package/src/resources/submodules/appium/packages/appium/docs/overrides/assets/images/appium-logo-white.png +0 -0
  324. package/src/resources/submodules/appium/packages/appium/docs/overrides/assets/images/appium-logo.png +0 -0
  325. package/src/resources/submodules/appium/packages/appium/docs/overrides/assets/images/sponsor-logo-browserstack-dark.png +0 -0
  326. package/src/resources/submodules/appium/packages/appium/docs/overrides/assets/images/sponsor-logo-browserstack-light.png +0 -0
  327. package/src/resources/submodules/appium/packages/appium/docs/overrides/assets/images/sponsor-logo-lambdatest-dark.png +0 -0
  328. package/src/resources/submodules/appium/packages/appium/docs/overrides/assets/images/sponsor-logo-lambdatest-light.png +0 -0
  329. package/src/resources/submodules/appium/packages/appium/docs/overrides/assets/images/sponsor-logo-sauce.png +0 -0
  330. package/src/resources/submodules/appium/packages/appium/docs/zh/blog/index.md +2 -0
  331. package/src/resources/submodules/appium/packages/appium/docs/zh/blog/posts/announcing-appiumconf2024.md +45 -0
  332. package/src/resources/submodules/appium/packages/appium/docs/zh/blog/posts/announcing-browserstack-as-strategic-partner.md +46 -0
  333. package/src/resources/submodules/appium/packages/appium/docs/zh/blog/posts/announcing-headspin-as-development-partner.md +47 -0
  334. package/src/resources/submodules/appium/packages/appium/docs/zh/blog/posts/announcing-lambdatest-as-strategic-partner.md +41 -0
  335. package/src/resources/submodules/appium/packages/appium/docs/zh/blog/posts/announcing-sauce-labs-as-strategic-partner.md +36 -0
  336. package/src/resources/submodules/appium/packages/appium/docs/zh/blog/posts/announcing-sponsorship-program.md +48 -0
  337. package/src/resources/submodules/appium/packages/appium/docs/zh/blog/posts/appium3.md +40 -0
  338. package/src/resources/submodules/appium/packages/appium/docs/zh/blog/posts/hello-world.md +15 -0
  339. package/src/resources/submodules/appium/packages/appium/docs/zh/contributing/index.md +132 -0
  340. package/src/resources/submodules/appium/packages/appium/docs/zh/developing/build-docs.md +86 -0
  341. package/src/resources/submodules/appium/packages/appium/docs/zh/developing/build-doctor-checks.md +141 -0
  342. package/src/resources/submodules/appium/packages/appium/docs/zh/developing/build-drivers.md +866 -0
  343. package/src/resources/submodules/appium/packages/appium/docs/zh/developing/build-plugins.md +520 -0
  344. package/src/resources/submodules/appium/packages/appium/docs/zh/developing/config-system.md +468 -0
  345. package/src/resources/submodules/appium/packages/appium/docs/zh/developing/index.md +18 -0
  346. package/src/resources/submodules/appium/packages/appium/docs/zh/developing/sensitive.md +49 -0
  347. package/src/resources/submodules/appium/packages/appium/docs/zh/ecosystem/clients.md +143 -0
  348. package/src/resources/submodules/appium/packages/appium/docs/zh/ecosystem/drivers.md +219 -0
  349. package/src/resources/submodules/appium/packages/appium/docs/zh/ecosystem/index.md +45 -0
  350. package/src/resources/submodules/appium/packages/appium/docs/zh/ecosystem/plugins.md +140 -0
  351. package/src/resources/submodules/appium/packages/appium/docs/zh/ecosystem/tools.md +87 -0
  352. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/branch-testing.md +57 -0
  353. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/caching.md +78 -0
  354. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/caps.md +284 -0
  355. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/config.md +102 -0
  356. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/context.md +44 -0
  357. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/event-timing.md +75 -0
  358. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/execute-methods.md +142 -0
  359. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/grid.md +166 -0
  360. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/headers.md +17 -0
  361. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/log-filters.md +86 -0
  362. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/managing-exts.md +89 -0
  363. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/migrating-1-to-2.md +410 -0
  364. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/migrating-2-to-3.md +459 -0
  365. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/security.md +89 -0
  366. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/settings.md +70 -0
  367. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/tls.md +43 -0
  368. package/src/resources/submodules/appium/packages/appium/docs/zh/index.md +54 -0
  369. package/src/resources/submodules/appium/packages/appium/docs/zh/intro/appium.md +200 -0
  370. package/src/resources/submodules/appium/packages/appium/docs/zh/intro/clients.md +139 -0
  371. package/src/resources/submodules/appium/packages/appium/docs/zh/intro/drivers.md +188 -0
  372. package/src/resources/submodules/appium/packages/appium/docs/zh/intro/history.md +196 -0
  373. package/src/resources/submodules/appium/packages/appium/docs/zh/intro/index.md +39 -0
  374. package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/index.md +23 -0
  375. package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/install.md +47 -0
  376. package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/next-steps.md +19 -0
  377. package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/requirements.md +21 -0
  378. package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/test-dotnet.md +99 -0
  379. package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/test-java.md +20 -0
  380. package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/test-js.md +62 -0
  381. package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/test-py.md +57 -0
  382. package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/test-rb.md +80 -0
  383. package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/uiauto2-driver.md +148 -0
  384. package/src/resources/submodules/appium/packages/appium/docs/zh/reference/api/appium.md +395 -0
  385. package/src/resources/submodules/appium/packages/appium/docs/zh/reference/api/bidi.md +71 -0
  386. package/src/resources/submodules/appium/packages/appium/docs/zh/reference/api/index.md +30 -0
  387. package/src/resources/submodules/appium/packages/appium/docs/zh/reference/api/jsonwp.md +215 -0
  388. package/src/resources/submodules/appium/packages/appium/docs/zh/reference/api/mjsonwp.md +152 -0
  389. package/src/resources/submodules/appium/packages/appium/docs/zh/reference/api/others.md +672 -0
  390. package/src/resources/submodules/appium/packages/appium/docs/zh/reference/api/plugins.md +291 -0
  391. package/src/resources/submodules/appium/packages/appium/docs/zh/reference/api/webdriver.md +1114 -0
  392. package/src/resources/submodules/appium/packages/appium/docs/zh/reference/cli/env-vars.md +31 -0
  393. package/src/resources/submodules/appium/packages/appium/docs/zh/reference/cli/extensions.md +240 -0
  394. package/src/resources/submodules/appium/packages/appium/docs/zh/reference/cli/index.md +35 -0
  395. package/src/resources/submodules/appium/packages/appium/docs/zh/reference/cli/server.md +76 -0
  396. package/src/resources/submodules/appium/packages/appium/docs/zh/reference/cli/setup.md +78 -0
  397. package/src/resources/submodules/appium/packages/appium/docs/zh/reference/index.md +25 -0
  398. package/src/resources/submodules/appium/packages/appium/docs/zh/resources/index.md +28 -0
  399. package/src/resources/submodules/appium/packages/appium/docs/zh/sponsors/index.md +61 -0
  400. package/src/resources/submodules/appium/packages/appium/types/manifest/README.md +30 -0
  401. package/src/resources/submodules/appium/packages/base-driver/CHANGELOG.md +1131 -0
  402. package/src/resources/submodules/appium/packages/base-driver/README.md +15 -0
  403. package/src/resources/submodules/appium/packages/base-driver/docs/mjsonwp/errors.md +82 -0
  404. package/src/resources/submodules/appium/packages/base-driver/docs/mjsonwp/protocol-methods.md +182 -0
  405. package/src/resources/submodules/appium/packages/base-driver/static/appium.png +0 -0
  406. package/src/resources/submodules/appium/packages/base-plugin/CHANGELOG.md +672 -0
  407. package/src/resources/submodules/appium/packages/base-plugin/README.md +15 -0
  408. package/src/resources/submodules/appium/packages/docutils/CHANGELOG.md +948 -0
  409. package/src/resources/submodules/appium/packages/docutils/README.md +27 -0
  410. package/src/resources/submodules/appium/packages/driver-test-support/CHANGELOG.md +717 -0
  411. package/src/resources/submodules/appium/packages/driver-test-support/README.md +112 -0
  412. package/src/resources/submodules/appium/packages/eslint-config-appium-ts/CHANGELOG.md +168 -0
  413. package/src/resources/submodules/appium/packages/eslint-config-appium-ts/README.md +33 -0
  414. package/src/resources/submodules/appium/packages/execute-driver-plugin/CHANGELOG.md +603 -0
  415. package/src/resources/submodules/appium/packages/execute-driver-plugin/README.md +42 -0
  416. package/src/resources/submodules/appium/packages/fake-driver/CHANGELOG.md +545 -0
  417. package/src/resources/submodules/appium/packages/fake-driver/README.md +7 -0
  418. package/src/resources/submodules/appium/packages/fake-driver/lib/screen.png +0 -0
  419. package/src/resources/submodules/appium/packages/fake-plugin/CHANGELOG.md +683 -0
  420. package/src/resources/submodules/appium/packages/fake-plugin/README.md +7 -0
  421. package/src/resources/submodules/appium/packages/images-plugin/CHANGELOG.md +602 -0
  422. package/src/resources/submodules/appium/packages/images-plugin/README.md +27 -0
  423. package/src/resources/submodules/appium/packages/images-plugin/docs/find-by-image.md +65 -0
  424. package/src/resources/submodules/appium/packages/images-plugin/docs/image-comparison.md +203 -0
  425. package/src/resources/submodules/appium/packages/images-plugin/test/fixtures/appstore.png +0 -0
  426. package/src/resources/submodules/appium/packages/images-plugin/test/fixtures/img1.png +0 -0
  427. package/src/resources/submodules/appium/packages/images-plugin/test/fixtures/img2.png +0 -0
  428. package/src/resources/submodules/appium/packages/images-plugin/test/fixtures/img2_part.png +0 -0
  429. package/src/resources/submodules/appium/packages/logger/CHANGELOG.md +162 -0
  430. package/src/resources/submodules/appium/packages/logger/README.md +31 -0
  431. package/src/resources/submodules/appium/packages/opencv/CHANGELOG.md +384 -0
  432. package/src/resources/submodules/appium/packages/opencv/README.md +68 -0
  433. package/src/resources/submodules/appium/packages/opencv/test/e2e/images/appium-diagram.jpg +0 -0
  434. package/src/resources/submodules/appium/packages/opencv/test/e2e/images/cc1.png +0 -0
  435. package/src/resources/submodules/appium/packages/opencv/test/e2e/images/cc2.png +0 -0
  436. package/src/resources/submodules/appium/packages/opencv/test/e2e/images/cc_rotated.png +0 -0
  437. package/src/resources/submodules/appium/packages/opencv/test/e2e/images/findwaldo.jpg +0 -0
  438. package/src/resources/submodules/appium/packages/opencv/test/e2e/images/number5.png +0 -0
  439. package/src/resources/submodules/appium/packages/opencv/test/e2e/images/waldo.jpg +0 -0
  440. package/src/resources/submodules/appium/packages/plugin-test-support/CHANGELOG.md +539 -0
  441. package/src/resources/submodules/appium/packages/plugin-test-support/README.md +49 -0
  442. package/src/resources/submodules/appium/packages/relaxed-caps-plugin/CHANGELOG.md +154 -0
  443. package/src/resources/submodules/appium/packages/relaxed-caps-plugin/README.md +35 -0
  444. package/src/resources/submodules/appium/packages/schema/CHANGELOG.md +271 -0
  445. package/src/resources/submodules/appium/packages/schema/README.md +50 -0
  446. package/src/resources/submodules/appium/packages/storage-plugin/CHANGELOG.md +73 -0
  447. package/src/resources/submodules/appium/packages/storage-plugin/README.md +83 -0
  448. package/src/resources/submodules/appium/packages/strongbox/CHANGELOG.md +94 -0
  449. package/src/resources/submodules/appium/packages/strongbox/README.md +96 -0
  450. package/src/resources/submodules/appium/packages/support/CHANGELOG.md +1054 -0
  451. package/src/resources/submodules/appium/packages/support/README.md +161 -0
  452. package/src/resources/submodules/appium/packages/test-support/CHANGELOG.md +712 -0
  453. package/src/resources/submodules/appium/packages/test-support/README.md +61 -0
  454. package/src/resources/submodules/appium/packages/tsconfig/CHANGELOG.md +131 -0
  455. package/src/resources/submodules/appium/packages/tsconfig/README.md +19 -0
  456. package/src/resources/submodules/appium/packages/types/CHANGELOG.md +793 -0
  457. package/src/resources/submodules/appium/packages/types/README.md +21 -0
  458. package/src/resources/submodules/appium/packages/universal-xml-plugin/CHANGELOG.md +435 -0
  459. package/src/resources/submodules/appium/packages/universal-xml-plugin/README.md +53 -0
  460. package/src/resources/submodules/appium/renovate/README.md +63 -0
  461. package/src/resources/submodules/appium-uiautomator2-driver/CHANGELOG.md +1204 -0
  462. package/src/resources/submodules/appium-uiautomator2-driver/README.md +2077 -0
  463. package/src/resources/submodules/appium-uiautomator2-driver/docs/actions.md +72 -0
  464. package/src/resources/submodules/appium-uiautomator2-driver/docs/activity-startup.md +47 -0
  465. package/src/resources/submodules/appium-uiautomator2-driver/docs/android-appbundle.md +69 -0
  466. package/src/resources/submodules/appium-uiautomator2-driver/docs/android-mobile-gestures.md +352 -0
  467. package/src/resources/submodules/appium-uiautomator2-driver/docs/bidi.md +50 -0
  468. package/src/resources/submodules/appium-uiautomator2-driver/docs/capability-sets.md +136 -0
  469. package/src/resources/submodules/appium-uiautomator2-driver/docs/scheduled-actions.md +155 -0
  470. package/src/resources/submodules/appium-uiautomator2-driver/docs/uiautomator-uiselector.md +51 -0
  471. package/src/resources/submodules/appium-uiautomator2-driver/docs/unlock/main.md +95 -0
  472. package/src/resources/submodules/appium-uiautomator2-driver/docs/unlock/screen1.png +0 -0
  473. package/src/resources/submodules/appium-uiautomator2-driver/docs/unlock/screen2.png +0 -0
  474. package/src/resources/submodules/appium-uiautomator2-driver/test/functional/assets/checkered-squares.png +0 -0
  475. package/src/resources/submodules/appium-uiautomator2-driver/test/functional/assets/start-button.png +0 -0
  476. package/src/resources/submodules/appium-uiautomator2-driver/test/functional/assets/stop-button.png +0 -0
  477. package/src/resources/submodules/appium-xcuitest-driver/.github/ISSUE_TEMPLATE.md +4 -0
  478. package/src/resources/submodules/appium-xcuitest-driver/CHANGELOG.md +2594 -0
  479. package/src/resources/submodules/appium-xcuitest-driver/README.md +55 -0
  480. package/src/resources/submodules/appium-xcuitest-driver/docs/assets/images/appium-logo-white.png +0 -0
  481. package/src/resources/submodules/appium-xcuitest-driver/docs/assets/images/appium-logo.png +0 -0
  482. package/src/resources/submodules/appium-xcuitest-driver/docs/assets/images/appium-plus-xctest.png +0 -0
  483. package/src/resources/submodules/appium-xcuitest-driver/docs/contributing.md +45 -0
  484. package/src/resources/submodules/appium-xcuitest-driver/docs/endpoints-wda.md +61 -0
  485. package/src/resources/submodules/appium-xcuitest-driver/docs/endpoints.md +98 -0
  486. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/assets/images/ios-xctest-file-movement/keynote.png +0 -0
  487. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/assets/images/ios-xctest-file-movement/on_my_iphone.png +0 -0
  488. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/assets/images/ios-xctest-file-movement/top_files.png +0 -0
  489. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/attach-to-running-wda.md +43 -0
  490. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/audio-capture.md +78 -0
  491. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/capability-sets.md +169 -0
  492. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/ci-setup.md +47 -0
  493. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/clipboard.md +47 -0
  494. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/elements-lookup-troubleshooting.md +158 -0
  495. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/file-transfer.md +147 -0
  496. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/gestures.md +52 -0
  497. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/hybrid.md +137 -0
  498. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/input-events.md +67 -0
  499. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/install-certificate.md +19 -0
  500. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/multiple-xcode-versions.md +37 -0
  501. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/parallel-tests.md +39 -0
  502. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/run-prebuilt-wda.md +135 -0
  503. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/run-preinstalled-wda.md +178 -0
  504. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/touch-id.md +33 -0
  505. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/troubleshooting.md +191 -0
  506. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/tvos.md +114 -0
  507. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/wda-custom-server.md +283 -0
  508. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/wda-slowness.md +231 -0
  509. package/src/resources/submodules/appium-xcuitest-driver/docs/index.md +36 -0
  510. package/src/resources/submodules/appium-xcuitest-driver/docs/installation/index.md +137 -0
  511. package/src/resources/submodules/appium-xcuitest-driver/docs/overview.md +19 -0
  512. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/check-prov-prof.png +0 -0
  513. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/create-new-project.png +0 -0
  514. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/create-single-page.png +0 -0
  515. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/no-prov-prof.png +0 -0
  516. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/project-prov-prof.png +0 -0
  517. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/set-up-bundle.png +0 -0
  518. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/untrusted-dev.png +0 -0
  519. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/xcode-bundle-id.png +0 -0
  520. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/xcode-config.png +0 -0
  521. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/xcode-facebook-fail.png +0 -0
  522. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/xcode-facebook-succeed.png +0 -0
  523. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/index.md +51 -0
  524. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/prov-profile-basic-auto.md +49 -0
  525. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/prov-profile-basic-manual.md +40 -0
  526. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/prov-profile-full-manual.md +50 -0
  527. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/prov-profile-generic-manual.md +49 -0
  528. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/real-device-config.md +100 -0
  529. package/src/resources/submodules/appium-xcuitest-driver/docs/reference/assets/images/useXctestrunFile.png +0 -0
  530. package/src/resources/submodules/appium-xcuitest-driver/docs/reference/bidi.md +75 -0
  531. package/src/resources/submodules/appium-xcuitest-driver/docs/reference/capabilities.md +165 -0
  532. package/src/resources/submodules/appium-xcuitest-driver/docs/reference/commands.md +490 -0
  533. package/src/resources/submodules/appium-xcuitest-driver/docs/reference/element-attributes.md +27 -0
  534. package/src/resources/submodules/appium-xcuitest-driver/docs/reference/execute-methods.md +2206 -0
  535. package/src/resources/submodules/appium-xcuitest-driver/docs/reference/ios-predicate.md +196 -0
  536. package/src/resources/submodules/appium-xcuitest-driver/docs/reference/locator-strategies.md +19 -0
  537. package/src/resources/submodules/appium-xcuitest-driver/docs/reference/scripts.md +29 -0
  538. package/src/resources/submodules/appium-xcuitest-driver/docs/reference/security-flags.md +22 -0
  539. package/src/resources/submodules/appium-xcuitest-driver/docs/reference/server-args.md +16 -0
  540. package/src/resources/submodules/appium-xcuitest-driver/docs/reference/settings.md +49 -0
  541. package/src/resources/submodules/appium-xcuitest-driver/test/assets/TestApp-iphonesimulator.app/Default-568h@2x.png +0 -0
  542. package/src/resources/submodules/appium-xcuitest-driver/test/assets/test.png +0 -0
  543. package/src/schema.ts +5 -0
  544. package/src/scripts/simple-index-documentation.ts +93 -0
  545. package/src/scripts/simple-query-documentation.ts +61 -0
  546. package/src/server.ts +40 -0
  547. package/src/tests/README.md +83 -0
  548. package/src/tests/__mocks__/@appium/support.ts +31 -0
  549. package/src/tests/generate-all-locators.test.ts +179 -0
  550. package/src/tests/test-setup-wda.ts +247 -0
  551. package/src/tools/README.md +170 -0
  552. package/src/tools/answer-appium.ts +75 -0
  553. package/src/tools/boot-simulator.ts +87 -0
  554. package/src/tools/create-session.ts +270 -0
  555. package/src/tools/delete-session.ts +46 -0
  556. package/src/tools/documentation/index.ts +97 -0
  557. package/src/tools/documentation/reasoning-rag.ts +434 -0
  558. package/src/tools/documentation/sentence-transformers-embeddings.ts +142 -0
  559. package/src/tools/documentation/simple-pdf-indexer.ts +509 -0
  560. package/src/tools/documentation/uploads/documents.json +1 -0
  561. package/src/tools/generate-tests.ts +50 -0
  562. package/src/tools/index.ts +133 -0
  563. package/src/tools/install-wda.ts +277 -0
  564. package/src/tools/interactions/activate-app.ts +46 -0
  565. package/src/tools/interactions/click.ts +47 -0
  566. package/src/tools/interactions/double-tap.ts +87 -0
  567. package/src/tools/interactions/find.ts +58 -0
  568. package/src/tools/interactions/get-text.ts +47 -0
  569. package/src/tools/interactions/install-app.ts +45 -0
  570. package/src/tools/interactions/list-apps.ts +65 -0
  571. package/src/tools/interactions/screenshot.ts +56 -0
  572. package/src/tools/interactions/set-value.ts +48 -0
  573. package/src/tools/interactions/terminate-app.ts +47 -0
  574. package/src/tools/interactions/uninstall-app.ts +47 -0
  575. package/src/tools/locators.ts +83 -0
  576. package/src/tools/scroll-to-element.ts +188 -0
  577. package/src/tools/scroll.ts +97 -0
  578. package/src/tools/select-device.ts +298 -0
  579. package/src/tools/select-platform.ts +243 -0
  580. package/src/tools/session-store.ts +72 -0
  581. package/src/tools/setup-wda.ts +218 -0
  582. package/src/types/appium-ios-device.d.ts +8 -0
  583. package/src/types/appium-xcuitest-driver.d.ts +5 -0
  584. package/tsconfig.json +23 -0
  585. package/index.js +0 -0
@@ -0,0 +1,55 @@
1
+ # appium-xcuitest-driver
2
+
3
+ [![npm version](http://img.shields.io/npm/v/appium-xcuitest-driver.svg)](https://npmjs.org/package/appium-xcuitest-driver)
4
+ [![Downloads](http://img.shields.io/npm/dm/appium-xcuitest-driver.svg)](https://npmjs.org/package/appium-xcuitest-driver)
5
+
6
+ [![Release](https://github.com/appium/appium-xcuitest-driver/actions/workflows/publish.js.yml/badge.svg)](https://github.com/appium/appium-xcuitest-driver/actions/workflows/publish.js.yml)
7
+
8
+ This is an [Appium](https://appium.github.io/appium) driver for automating iOS applications on iOS,
9
+ iPadOS, and tvOS.
10
+
11
+ > [!IMPORTANT]
12
+ > Only macOS is supported as the host platform, as it requires Xcode and developer tools.
13
+
14
+ > [!IMPORTANT]
15
+ > Since major version *10.0.0*, this driver is only compatible with Appium 3. Use the `appium driver install xcuitest`
16
+ > command to add it to your distribution.
17
+
18
+
19
+ ## Documentation
20
+
21
+ The [Documentation](https://appium.github.io/appium-xcuitest-driver) is hosted separately at
22
+ [https://appium.github.io/appium-xcuitest-driver](https://appium.github.io/appium-xcuitest-driver)
23
+
24
+ ## Contributing & Development
25
+
26
+ Clone this project from GitHub and run:
27
+
28
+ ```bash
29
+ npm install
30
+ ```
31
+
32
+ To watch changes during the development:
33
+
34
+ ```bash
35
+ npm run watch
36
+ ```
37
+
38
+ To run unit/functional tests:
39
+
40
+ ```bash
41
+ npm test # unit
42
+ npm run e2e-test # functional
43
+ ```
44
+
45
+ There are also a number of environment variables that can be used when running
46
+ the tests locally. These include:
47
+
48
+ * `REAL_DEVICE` - set to anything truthy, makes the tests use real device capabilities
49
+ * `_FORCE_LOGS` - set to `1` to get the log output, not just spec
50
+ * `PLATFORM_VERSION` - change the version to run the tests against (defaults to `9.3`)
51
+ * `XCCONFIG_FILE` - specify where the xcode config file is for a real device run (if
52
+ blank, and running a real device test, it will search for the first file in
53
+ the root directory of the repo with the extension "xcconfig")
54
+ * `UICATALOG_REAL_DEVICE` - path to the real device build of UICatalog, in case
55
+ the npm installed one is not built for real device
@@ -0,0 +1,45 @@
1
+ ---
2
+ hide:
3
+ - navigation
4
+ - toc
5
+
6
+ title: Contributing
7
+ ---
8
+
9
+ Contributions to this project are welcome! To start off, clone it from GitHub and run:
10
+
11
+ ```bash
12
+ npm install
13
+ ```
14
+
15
+ To watch changes during development:
16
+
17
+ ```bash
18
+ npm run watch
19
+ ```
20
+
21
+ To run unit/functional tests:
22
+
23
+ ```bash
24
+ npm run test # unit
25
+ npm run e2e-test # functional
26
+ ```
27
+
28
+ To develop documentation:
29
+
30
+ ```bash
31
+ npm run install-docs-deps # install the dependencies (Python packages)
32
+ npm run dev:docs # serve the docs locally and watch for changes
33
+ ```
34
+
35
+ There are also a number of environment variables that can be used when running
36
+ the tests locally. These include:
37
+
38
+ * `REAL_DEVICE` - set to anything truthy, makes the tests use real device capabilities
39
+ * `_FORCE_LOGS` - set to `1` to get the log output, not just spec
40
+ * `PLATFORM_VERSION` - change the version to run the tests against (defaults to `11.3`)
41
+ * `XCCONFIG_FILE` - specify where the Xcode config file is for a real device run (if
42
+ blank, and running a real device test, it will search for the first file in
43
+ the root directory of the repo with the extension `.xcconfig`)
44
+ * `UICATALOG_REAL_DEVICE` - path to the real device build of UICatalog, in case
45
+ the `npm` installed one is not built for a real device
@@ -0,0 +1,61 @@
1
+ ## WebDriverAgent JSONWP Endpoints
2
+
3
+ ### Session-less commands
4
+
5
+ | method | endpoint | req params | opt params |
6
+ | ------ | -------------------------------------- | ---------- | ---------- |
7
+ | POST | /wda/homescreen | | |
8
+ | GET | /source | | accessible |
9
+ | GET | /inspector | | |
10
+ | GET | /inspector.js | | |
11
+ | GET | /screenshot | | |
12
+ | POST | /session | desiredCapabilities
13
+ | GET | /status | | |
14
+ | GET | /* | ** | |
15
+ | POST | /* | ** | |
16
+ | PUT | /* | ** | |
17
+ | DELETE | /* | ** | |
18
+
19
+
20
+ ### Session commands
21
+
22
+ | method | endpoint | req params | opt params |
23
+ | ------ | -------------------------------------- | ---------- | ---------- |
24
+ | GET | /alert/text | | |
25
+ | POST | /alert/accept | | |
26
+ | POST | /alert/dismiss | | |
27
+ | POST | /wda/deactivateApp | | duration |
28
+ | POST | /timeouts | * | |
29
+ | GET | /source | | accessible |
30
+ | GET | /element/:uuid/enabled | | |
31
+ | GET | /element/:uuid/rect | | |
32
+ | GET | /element/:uuid/attribute/:name | | |
33
+ | GET | /element/:uuid/text | | |
34
+ | GET | /element/:uuid/displayed | | |
35
+ | GET | /wda/element/:uuid/accessible | | |
36
+ | GET | /element/:uuid/name | | |
37
+ | POST | /element/:uuid/value | value | |
38
+ | POST | /element/:uuid/click | | |
39
+ | POST | /element/:uuid/clear | | |
40
+ | POST | /wda/element/:uuid/doubleTap | | |
41
+ | POST | /wda/element/:uuid/touchAndHold | duration | |
42
+ | POST | /wda/element/:uuid/scroll | | name, direction, predicateString, toVisible |
43
+ | POST | /uiaElement/:uuid/value | value | |
44
+ | POST | /wda/element/:uuid/dragfromtoforduration | fromX, fromY, toX, toY, duration | |
45
+ | POST | /wda/tap/:uuid | x, y | |
46
+ | POST | /wda/keys | value | |
47
+ | GET | /window/size | | |
48
+ | POST | /element | using, value | |
49
+ | POST | /elements | using, value | |
50
+ | GET | /wda/uiaElement/:uuid/getVisibleCells | | |
51
+ | POST | /element/:uuid/element | using, value | |
52
+ | POST | /element/:uuid/elements | using, value | |
53
+ | GET | /orientation | | |
54
+ | POST | /orientation | orientation | |
55
+ | GET | /screenshot | | |
56
+ | POST | /wda/touch_id | match | |
57
+
58
+
59
+ \* implemented but intentionally not supported
60
+
61
+ ** not implemented handlers
@@ -0,0 +1,98 @@
1
+ ## Appium iOS JSONWP Endpoints
2
+
3
+ ### Session-less commands
4
+
5
+ | method | endpoint | req params | opt params |
6
+ | ------ | ---------------------------------------- | ---------- | ---------- |
7
+ | GET | /status | | |
8
+ | POST | /session | desiredCapabilities | requiredCapabilities |
9
+ | GET | /sessions | | |
10
+
11
+
12
+ ### Session commands
13
+
14
+ | method | endpoint | req params | opt params |
15
+ | ------ | ---------------------------------------- | ---------- | ---------- |
16
+ | GET | /:sessionId | | |
17
+ | DELETE | /:sessionId | | |
18
+ | POST | /timeouts | type, ms | |
19
+ | POST | /timeouts/async_script | ms | |
20
+ | POST | /timeouts/implicit_wait | ms | |
21
+ | GET | /window_handle | | |
22
+ | GET | /window_handles | | |
23
+ | GET | /url | | |
24
+ | POST | /url | url | |
25
+ | POST | /forward | none | |
26
+ | POST | /back | none | |
27
+ | POST | /refresh | none | |
28
+ | POST | /execute | script, args | |
29
+ | POST | /execute_async | script, args | |
30
+ | GET | /screenshot | | |
31
+ | POST | /frame | id | |
32
+ | POST | /window | name | |
33
+ | DELETE | /window | | |
34
+ | GET | /window/:windowhandle/size | | |
35
+ | GET | /cookie | | |
36
+ | POST | /cookie | cookie | |
37
+ | DELETE | /cookie | | | | |
38
+ | DELETE | /cookie/:name | | |
39
+ | GET | /source | | |
40
+ | GET | /title | | |
41
+ | POST | /element | using, value | |
42
+ | POST | /elements | using, value | |
43
+ | POST | /element/active | none | |
44
+ | POST | /element/:elementId/element | using, value | |
45
+ | POST | /element/:elementId/elements | using, value | |
46
+ | POST | /element/:elementId/click | none | |
47
+ | POST | /element/:elementId/submit | none | |
48
+ | GET | /element/:elementId/text | none | |
49
+ | POST | /element/:elementId/value | value | |
50
+ | POST | /keys | value | |
51
+ | GET | /element/:elementId/name | | |
52
+ | POST | /element/:elementId/clear | none | |
53
+ | GET | /element/:elementId/selected | | |
54
+ | GET | /element/:elementId/enabled | | |
55
+ | GET | /element/:elementId/attribute/:name | | |
56
+ | GET | /element/:elementId/equals/:otherId | | |
57
+ | GET | /element/:elementId/displayed | | |
58
+ | GET | /element/:elementId/location | | |
59
+ | GET | /element/:elementId/location_in_view | | |
60
+ | GET | /element/:elementId/size | | |
61
+ | GET | /element/:elementId/css/:propertyName | | |
62
+ | GET | /orientation | | |
63
+ | POST | /orientation | orientation | |
64
+ | GET | /alert_text | | |
65
+ | POST | /alert_text | text | |
66
+ | POST | /accept_alert | none | |
67
+ | POST | /dismiss_alert | none | |
68
+ | POST | /click | | button |
69
+ | GET | /location | | |
70
+ | POST | /location | location | |
71
+ | POST | /log | type | |
72
+ | GET | /log/types | | |
73
+ | GET | /context | | |
74
+ | POST | /context | name | |
75
+ | GET | /contexts | | |
76
+ | POST | /receive_async_response | status, value | |
77
+
78
+
79
+ ### Appium-specific commands
80
+
81
+ | method | endpoint | req params | opt params |
82
+ | ------ | ---------------------------------------- | ---------- | ---------- |
83
+ | POST | /appium/device/shake | none | |
84
+ | GET | /appium/device/system_time | | |
85
+ | POST | /appium/device/lock | | seconds |
86
+ | POST | /appium/device/rotate | x, y, radius, rotation, touchCount, duration | element |
87
+ | POST | /appium/device/remove_app | appId or bundleId | |
88
+ | POST | /appium/device/hide_keyboard | | strategy, key, keyCode, keyName |
89
+ | POST | /appium/device/push_file | path, data | |
90
+ | POST | /appium/device/pull_file | path | |
91
+ | POST | /appium/device/pull_folder | path | |
92
+ | POST | /appium/simulator/touch_id | match | |
93
+ | POST | /appium/app/launch | none | |
94
+ | POST | /appium/app/close | none | |
95
+ | POST | /appium/app/background | seconds | |
96
+ | POST | /appium/app/strings | | language, stringFile |
97
+ | POST | /appium/element/:elementId/value | value | |
98
+ | POST | /appium/receive_async_response | response | |
@@ -0,0 +1,43 @@
1
+ ---
2
+ hide:
3
+ - toc
4
+
5
+ title: Attach to a Running WebDriverAgent
6
+ ---
7
+
8
+ The XCUITest driver provides the __`appium:webDriverAgentUrl`__ capability to attach to a running
9
+ WebDriverAgent (WDA) application. This works for real devices and simulators, but the primary usage
10
+ is for real devices.
11
+
12
+ ## Usage
13
+
14
+ 1. Start a WebDriverAgent application on a device
15
+ 2. Start an XCUITest driver session with `appium:webDriverAgentUrl` capability
16
+
17
+ Please read [Manage WebDriverAgent by Yourself](./wda-custom-server.md) and
18
+ [Real Device Configuration](../preparation/real-device-config.md) about how to prepare WDA for a
19
+ real device.
20
+
21
+ The `appium:webDriverAgentUrl` value should be the WDA URL: `http://<reachable ip address for the device>:8100`.
22
+ If the environment has port-forward to the connected device, it can be `http://localhost:8100`.
23
+
24
+ ```json
25
+ {
26
+ "platformName": "ios",
27
+ "appium:automationName": "xcuitest",
28
+ "appium:platformVersion": "15.5",
29
+ "appium:udid": "<device udid>",
30
+ "appium:deviceName": "iPhone",
31
+ "appium:webDriverAgentUrl": "http://<reachable ip address for the device>:8100"
32
+ }
33
+ ```
34
+
35
+ This method allows you to manage the WDA process by yourself. The XCUITest driver then simply
36
+ attaches to the WDA process, which may improve the application performance.
37
+
38
+ Some XCUITest driver APIs (for example,
39
+ [mobile: calibrateWebToRealCoordinatesTranslation](../reference/execute-methods.md#mobile-calibratewebtorealcoordinatestranslation))
40
+ might still require the port number of the remote device if it is a real device. Providing the
41
+ `appium:webDriverAgentUrl` capability might not be sufficient to recognize the remote port number,
42
+ in case it is different from the local one. Consider settings the `appium:wdaRemotePort` capability
43
+ in such cases, to supply the driver with the appropriate data.
@@ -0,0 +1,78 @@
1
+ ---
2
+ title: Audio Capture
3
+ ---
4
+
5
+
6
+ Appium XCUITest driver provides a possibility to record iOS audio stream and save it to a file,
7
+ which could be then retrieved on the client side. Apple does not provide any API to directly
8
+ retrieve the audio stream from a Simulator or a real device, but it is possible to redirect that
9
+ stream to the host machine, where it could be captured.
10
+
11
+ * [`mobile: startAudioRecording`](../reference/execute-methods.md#mobile-startaudiorecording)
12
+ * [`mobile: stopAudioRecording`](../reference//execute-methods.md#mobile-stopaudiorecording)
13
+
14
+ ## Server Requirements
15
+
16
+ - The host machine must have [`ffmpeg`](https://www.ffmpeg.org/download.html) installed and added to PATH.
17
+ It can be installed via [`brew`](https://brew.sh/): `brew install ffmpeg`.
18
+ - For macOS 10.15+, applications recording Microphone audio need to be explicitly granted this permission.
19
+ This can be done in the following settings menu:
20
+
21
+ - macOS < 13: _System Preferences -> Security & Privacy -> Privacy -> Microphone_
22
+ - macOS 13+: _System Settings -> Privacy & Security -> Microphone_
23
+
24
+ Ensure that either `ffmpeg` itself or the parent Appium process (e.g. Terminal) is present in that list.
25
+
26
+ - As this is a potentially insecure feature, it must be explicitly allowed on the server side. See
27
+ [the Appium documentation on Security](https://appium.io/docs/en/latest/guides/security/) for more details.
28
+ The feature name is `audio_record`.
29
+
30
+ ## Simulator Setup
31
+
32
+ The following steps are necessary to setup iOS Simulator audio capture:
33
+
34
+ * Install [Soundflower](https://github.com/mattingalls/Soundflower/releases)
35
+ * Redirect Simulator audio output to Soundflower: from the main Simulator menu, select
36
+ _I/O -> Audio Output -> Soundflower (2ch)_
37
+ * In terminal, run `ffmpeg -f avfoundation -list_devices true -i ""` to get the identifier of the
38
+ `Soundflower (2ch)` device. This identifier prefixed with `:` will be then used as `audioInput`
39
+ argument to `mobile: startAudioRecording` call
40
+ * Test that your setup works as expected. Run any audio playback in Simulator and execute the
41
+ following command in Terminal, replacing the `-i` argument value with the one you got from the
42
+ previous step:
43
+ ```
44
+ ffmpeg -t 5 -f avfoundation -i ":1" -c:a aac -b:a 128k -ac 2 -ar 44100 -y ~/Desktop/out.mp4
45
+ ```
46
+ After 5 seconds, a file named `out.mp4` should be created on your desktop, containing the recorded
47
+ audio stream.
48
+
49
+ ## Real Device Setup
50
+
51
+ The following steps are necessary to setup iOS Real Device audio capture:
52
+
53
+ * Connect your device to the Mac host with a cable
54
+ * Open the _Audio MIDI Setup_ application
55
+ * Via Finder: _Applications -> Utilities -> Audio MIDI Setup_
56
+ * Via terminal: `open -a /System/Applications/Utilities/Audio\ MIDI\ Setup.app`
57
+ * Find your phone in the list of devices there and click `Enable` next to it
58
+ * In terminal, run `ffmpeg -f avfoundation -list_devices true -i ""` to get the identifier of your
59
+ device in the `AVFoundation audio devices` list. This identifier prefixed with `:` will be then
60
+ used as `audioInput` argument to `mobile: startAudioRecording` call
61
+ * Test that your setup works as expected. Run any audio playback on the device and execute the
62
+ following command in Terminal, replacing the `-i` argument value with the value you got from the
63
+ previous step:
64
+ ```
65
+ ffmpeg -t 5 -f avfoundation -i ":1" -c:a aac -b:a 128k -ac 2 -ar 44100 -y ~/Desktop/out.mp4
66
+ ```
67
+ After 5 seconds, a file named `out.mp4` should be created on your desktop, containing the recorded
68
+ audio stream.
69
+
70
+ !!! note
71
+
72
+ Apple does not allow phone calls to be redirected this way. You can only record application or system sounds.
73
+
74
+ ## Further Reading
75
+
76
+ * <https://github.com/appium/appium-xcuitest-driver/pull/1207>
77
+ * <https://www.macobserver.com/tips/quick-tip/iphone-audio-input-mac/>
78
+ * <http://www.lorisware.com/blog/2012/04/28/recording-iphone-emulator-video-with-sound/>
@@ -0,0 +1,169 @@
1
+ ---
2
+ title: Basic Examples of Session Capability Sets
3
+ ---
4
+
5
+ This article describes necessary capabilities that must be provided in order
6
+ to implement some common automation testing scenarios.
7
+ It only describes very minimum sets of capabilities required to
8
+ be included. For refined setups more of them might need to be provided. Check the
9
+ [Capabilities](../reference/capabilities.md) article for more details
10
+ on each option available for the fine-tuning of XCUITest driver sessions.
11
+
12
+ ### Application File (Real Device)
13
+
14
+ ```json
15
+ {
16
+ "platformName": "iOS",
17
+ "appium:automationName": "XCUITest",
18
+ "appium:platformVersion": "<iOS_Version>",
19
+ "appium:udid": "<Phone_UUID>",
20
+ "appium:app": "/path/to/local/package.ipa"
21
+ }
22
+ ```
23
+
24
+ `appium:app` could also be a remote app or an archive:
25
+
26
+ ```
27
+ "appium:app": "https://example.com/package.ipa"
28
+ "appium:app": "https://example.com/package.zip"
29
+ ```
30
+
31
+ `appium:udid` could also be set to `auto` in order to select the first matched device
32
+ connected to the host (or a single one if only one is connected):
33
+
34
+ ```
35
+ "appium:udid": "auto"
36
+ ```
37
+
38
+ ### Application File (Simulator)
39
+
40
+ ```json
41
+ {
42
+ "platformName": "iOS",
43
+ "appium:automationName": "XCUITest",
44
+ "appium:deviceName": "<Simulator_Name>",
45
+ "appium:platformVersion": "<iOS_Version>",
46
+ "appium:app": "/path/to/local/package.app"
47
+ }
48
+ ```
49
+
50
+ `appium:app` could also be an archive:
51
+
52
+ ```
53
+ "appium:app": "https://example.com/package.zip"
54
+ "appium:app": "/path/to/local/package.zip"
55
+ ```
56
+
57
+ ### Safari (Real Device)
58
+
59
+ ```json
60
+ {
61
+ "platformName": "iOS",
62
+ "appium:automationName": "XCUITest",
63
+ "browserName": "Safari",
64
+ "appium:platformVersion": "<iOS_Version>",
65
+ "appium:udid": "<Phone_UUID>"
66
+ }
67
+ ```
68
+
69
+ You may also provide `appium:safariInitialUrl` capability value to navigate
70
+ to the desired page during the session startup:
71
+
72
+ ```
73
+ "appium:safariInitialUrl": "https://server.com/page"
74
+ ```
75
+
76
+ ### Safari (Simulator)
77
+
78
+ ```json
79
+ {
80
+ "platformName": "iOS",
81
+ "appium:automationName": "XCUITest",
82
+ "browserName": "Safari",
83
+ "appium:deviceName": "<Simulator_Name>",
84
+ "appium:platformVersion": "<iOS_Version>"
85
+ }
86
+ ```
87
+
88
+ ### Pre-Installed App (Real Device)
89
+
90
+ ```json
91
+ {
92
+ "platformName": "iOS",
93
+ "appium:automationName": "XCUITest",
94
+ "appium:platformVersion": "<iOS_Version>",
95
+ "appium:udid": "<Phone_UUID>",
96
+ "appium:bundleId": "<Bundle_ID_Of_Preinstalled_App>",
97
+ "appium:noReset": true
98
+ }
99
+ ```
100
+
101
+ The `appium:noReset` capability is set to `true` in order to tell the driver
102
+ the app identified by `appium:bundleId` is already preinstalled and must not be reset.
103
+
104
+ ### Pre-Installed App (Simulator)
105
+
106
+ ```json
107
+ {
108
+ "platformName": "iOS",
109
+ "appium:automationName": "XCUITest",
110
+ "appium:deviceName": "<Simulator_Name>",
111
+ "appium:platformVersion": "<iOS_Version>",
112
+ "appium:bundleId": "<Bundle_ID_Of_Preinstalled_App>",
113
+ "appium:noReset": true
114
+ }
115
+ ```
116
+
117
+ ### Deeplink (Real Device running iOS 17+)
118
+
119
+ ```json
120
+ {
121
+ "platformName": "iOS",
122
+ "appium:automationName": "XCUITest",
123
+ "appium:platformVersion": "<iOS_Version>",
124
+ "appium:udid": "<Phone_UUID>",
125
+ "appium:initialDeeplinkUrl": "<Deeplink_Url>"
126
+ }
127
+ ```
128
+
129
+ ### Deeplink (Simulator running iOS 17+)
130
+
131
+ ```json
132
+ {
133
+ "platformName": "iOS",
134
+ "appium:automationName": "XCUITest",
135
+ "appium:deviceName": "<Simulator_Name>",
136
+ "appium:platformVersion": "<iOS_Version>",
137
+ "appium:initialDeeplinkUrl": "<Deeplink_Url>"
138
+ }
139
+ ```
140
+
141
+ ### Custom Launch (Real Device)
142
+
143
+ ```json
144
+ {
145
+ "platformName": "iOS",
146
+ "appium:automationName": "XCUITest",
147
+ "appium:platformVersion": "<iOS_Version>",
148
+ "appium:udid": "<Phone_UUID>",
149
+ }
150
+ ```
151
+
152
+ This will start your test at the Home screen.
153
+ Afterwards you may use any of the application management
154
+ methods, like [mobile: installApp](../reference//execute-methods.md#mobile-installapp)
155
+ or [mobile: activateApp](../reference//execute-methods.md#mobile-activateapp)
156
+ to manage the life cycle of your app or switch between contexts to
157
+ manage web pages. Check the full list of
158
+ [mobile: execute methods](../reference/execute-methods.md) for more details.
159
+
160
+ ### Custom Launch (Simulator)
161
+
162
+ ```json
163
+ {
164
+ "platformName": "iOS",
165
+ "appium:automationName": "XCUITest",
166
+ "appium:deviceName": "<Simulator_Name>",
167
+ "appium:platformVersion": "<iOS_Version>"
168
+ }
169
+ ```
@@ -0,0 +1,47 @@
1
+ ---
2
+ title: Continuous Integration
3
+ ---
4
+
5
+ Setting up the XCUITest driver in an automated environment brings a few challenges with it. Any scenario
6
+ where user interaction is required must be automated or avoided altogether. For real device setup,
7
+ you should first follow the [Real Device Configuration tutorial](../preparation/real-device-config.md).
8
+
9
+ ### Keychains
10
+
11
+ One common scenario is a prompt asking for a keychain to be unlocked in order to sign the WebDriverAgent.
12
+ There are multiple possible solutions for this:
13
+
14
+ 1. Keychains can be set to have no timeout and be unlocked manually once. This can be done using the
15
+ keychain access application. Sometimes keychains still lock themselves though and this approach
16
+ is not recommended.
17
+ 2. [It is possible to create a second keychain](../guides/troubleshooting.md#real-device-security-settings),
18
+ which just stores the required certificate to sign the WebDriverAgent. The issue with this
19
+ approach is that Codesign wants to unlock all listed keychains regardless of the specified
20
+ keychain, thus leading to a password prompt. This can be avoided by setting the default keychain
21
+ and basically hiding the login keychain at the start of the build.
22
+ [See this Stackoverflow article](https://stackoverflow.com/questions/16550594/jenkins-xcode-build-works-codesign-fails)
23
+ for how to utilize this approach. It is impractical when running other build jobs simultaneously.
24
+ 3. Stick with the existing keychains as in approach 1, but explicitly call unlock keychain before
25
+ **each** build. This can be done using [fastlane unlock_keychain](https://docs.fastlane.tools/actions/unlock_keychain/)
26
+ or by using [security unlock-keychain](https://www.unix.com/man-page/osx/1/security/) directly.
27
+ The password can be saved as a CI variable/secret or on the machine itself.
28
+
29
+ It is recommended to go with the second or third option. The third one is the easiest and most
30
+ reliable one to set up, at the cost of having to set the keychain password as an environment variable.
31
+
32
+ ### Xcode
33
+
34
+ When setting up a new machine as a CI server, you are probably going to install Xcode, without
35
+ executing it once, because you are not going to use it for development. Make sure to start Xcode at
36
+ least once and do the initial set up and install the suggested extensions.
37
+
38
+ ### Linking Apple Account
39
+
40
+ This only applies for real device set up. Make sure to link your 'Apple Developer Account' in the
41
+ machine's system wide "Account Panel" when using the "Basic Automatic Configuration" described
42
+ [here](../preparation/prov-profile-basic-auto.md).
43
+
44
+ ### Troubleshooting
45
+
46
+ Enable the `appium:showXcodeLog` [capability](../reference/capabilities.md#webdriveragent) and
47
+ check the Appium server output.
@@ -0,0 +1,47 @@
1
+ ---
2
+ hide:
3
+ - toc
4
+
5
+ title: Get/Set Clipboard
6
+ ---
7
+
8
+ Working with the clipboard on real devices has an Apple security limitation, where the
9
+ WebDriverAgentRunner application must be in foreground in order for the action to work. Otherwise
10
+ an empty string is always returned, or it could raise an exception like
11
+ [this issue](https://github.com/appium/appium/issues/18730).
12
+
13
+ Consider using [`mobile: activateApp`](../reference/execute-methods.md/#mobile-activateapp)
14
+ and [`mobile: backgroundApp`](../reference/execute-methods.md/#mobile-backgroundapp) to change the
15
+ foreground application.
16
+
17
+ ## Get Clipboard
18
+
19
+ Applies to iOS 13+ real devices. You can also use
20
+ [`mobile: getPasteboard`](../reference/execute-methods.md#mobile-getpasteboard) for simulators.
21
+
22
+ ```ruby
23
+ # Ruby
24
+
25
+ # Bring the WebDriverAgent foreground. The bundle id depends on configuration such as "appium:updatedWDABundleId" for real devices.
26
+ driver.execute_script 'mobile: activateApp', {bundleId: 'com.facebook.WebDriverAgentRunner.xctrunner'}
27
+ # Get the clipboard content
28
+ driver.get_clipboard
29
+ # Go back to the application under test
30
+ driver.execute_script 'mobile: activateApp', {bundleId: '<bundle id of the test app>'}
31
+ ```
32
+
33
+ ## Set Clipboard
34
+
35
+ Applies to iOS 15+ real devices. You can also use
36
+ [`mobile: setPasteboard`](../reference/execute-methods.md#mobile-setpasteboard) for simulators.
37
+
38
+ ```ruby
39
+ # Ruby
40
+
41
+ # Bring the WebDriverAgent foreground. The bundle id depends on configuration such as "appium:updatedWDABundleId" for real devices.
42
+ driver.execute_script 'mobile: activateApp', {bundleId: 'com.facebook.WebDriverAgentRunner.xctrunner'}
43
+ # Set the clipboard content
44
+ driver.set_clipboard(content: 'happy testing')
45
+ # Go back to the application under test
46
+ driver.execute_script 'mobile: activateApp', {bundleId: '<bundle id of the test app>'}
47
+ ```