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,196 @@
1
+ ---
2
+ title: Appium Project History
3
+ ---
4
+
5
+ Appium has been around in one form or another since 2012. It's been under the
6
+ direction of various individuals and organizations, and it's even been
7
+ implemented in 3 different programming languages! Welcome to more than you ever
8
+ wanted to know about how Appium got to be what is it today...
9
+
10
+ ## Early Inspiration
11
+
12
+ [Dan Cuellar](https://twitter.com/thedancuellar) was the Test Manager at Zoosk
13
+ in 2011, when he encountered a problem. The length of the test passes on the
14
+ iOS product was getting out of hand. Less testing was an option, but would come
15
+ with additional risk, especially with it taking several days to get patches
16
+ through the iOS App Store Review process. He thought back to his days working
17
+ on websites and realized automation was the answer.
18
+
19
+ Dan surveyed the existing landscape of tools, only to find that all of them
20
+ hand major drawbacks. The tool supplied by Apple, UIAutomation, required tests
21
+ to be written in JavaScript, and did not allow for real-time debugging or
22
+ interpretation. It also had to be executed inside the Xcode profiling tool,
23
+ Instruments. Other 3rd-party tools used private APIs and required SDKs and HTTP
24
+ Servers to be embedded into the application. This seemed highly undesirable.
25
+
26
+ Unsatisfied with the existing options, Dan asked his manager for some
27
+ additional time to see if he could find a better way. He spent 2 weeks poking
28
+ and prodding around to see if there was a way to use approved Apple
29
+ technologies to automate an iOS application. The first implementation he tried
30
+ used AppleScript to send messages to Mac UI elements using the OS
31
+ X accessibility APIs. This worked to some degree, but would never work on real
32
+ devices, not to mention other drawbacks.
33
+
34
+ So he thought, what if I could get the UIAutomation framework to run in real
35
+ time like an interpreter? He looked into it and he determined that all he would
36
+ need to do is find a way to receive, execute, and reply to commands from within
37
+ a UIAutomation javascript program. Using the utility Apple provided for
38
+ executing shell commands he was able to `cat` sequentially ordered text files
39
+ to receive commands, `eval()` the output to execute them, and write them back
40
+ to disk with `python`. He then prepared code in C# that implemented the
41
+ Selenium-style syntax to write the sequentially ordered javascript commands.
42
+ iOSAuto is born.
43
+
44
+ ## Selenium Conference 2012
45
+
46
+ Dan was selected to speak at Selenium Conference 2012 in London about an
47
+ entirely different topic. As part of his presentation, he showed off iOS
48
+ Automation using Selenium syntax to demonstrate writing platform-agnostic tests
49
+ that use separate platform-specific page objects with a common interface. To
50
+ his surprise, the cool test architecture would take a backseat to the spectacle
51
+ of iOS tests running like WebDriver tests. Several people suggested that he
52
+ give a lightning talk later in the conference to explain exactly how it worked.
53
+
54
+ On the second day of the conference, Dan stepped up on stage to give the
55
+ lightning talk. Jason Huggins, co-creator of Selenium, moderated the lightning
56
+ talks. Dan experienced technical difficulties getting his presentation to
57
+ load, and Jason nearly had to move on to the next lightning talk. At the last
58
+ moment, the screen turned on and Dan jumped into his presentation. He explained
59
+ the details of his implementation and how it worked, begged for contributors,
60
+ and in five minutes it was over. The crowd applauded politely, and he left the
61
+ stage.
62
+
63
+ ## The Phone Rings
64
+
65
+ Four months after the Selenium Conference, Jason called Dan. Jason had been
66
+ working on iOS testing support for a client at Sauce Labs. Jason remembered
67
+ Dan's lightning talk and thought the project might be useful to Jason's work,
68
+ but Dan's source code was not public. Jason asked Dan to meet up. Later that
69
+ week, Dan met Jason in a bar in San Francisco and showed him the source code
70
+ for iOS Auto.
71
+
72
+ A long-time open source advocate, Jason encouraged Dan to release his code
73
+ under an open source license. In August, Dan [released the source
74
+ code](https://github.com/penguinho/appium-old/commit/3ab56d3a5601897b2790b5256351f9b5af3f9e90)
75
+ on GitHub in C#. Jason encouraged Dan to change the language to make the
76
+ project more appealing to potential contributors. Dan [uploaded a new version
77
+ in
78
+ Python](https://github.com/penguinho/appium-old/commit/9b891207be0957bf209a77242750da17d3eb8eda).
79
+ In September, Jason added a web server and [began to implement the WebDriver
80
+ wire
81
+ protocol](https://github.com/hugs/appium-old/commit/ae8fe4578640d9af9137d0546190fa29317d1499)
82
+ over HTTP, making iOS Auto scriptable from any Selenium WebDriver client
83
+ library in any language.
84
+
85
+ ## The Mobile Testing Summit
86
+
87
+ Jason decided that the project should be presented at the [Mobile Testing
88
+ Summit](https://twitter.com/mobtestsummit) in November, but suggested that the
89
+ project get a new name first. Many ideas were thrown out and they settled on
90
+ AppleCart. A day later, while he was perusing some of Apple's guidance on
91
+ copyright and trademarks, Jason noticed that under the section of examples for
92
+ names Apple would defend its trademarks against, the first example was
93
+ "AppleCart". He called Dan and informed him of the situation, and they
94
+ brainstormed for a bit before Jason hit the jackpot. Appium... Selenium for
95
+ Apps.
96
+
97
+ ## Sauce Labs and Node.js
98
+
99
+ In January 2013, not long after the Mobile Testing Summit, Sauce Labs decided
100
+ to fully back Appium and provide more developer power. A task force was created
101
+ to evaluate the current state and how best to move forward with the project.
102
+ The team, which included Jonathan Lipps (the current project lead), decided
103
+ that Appium needed a rebirth, and ultimately settled on Node.js as the
104
+ framework to use. Node is well-known as a fast and efficient web server
105
+ backend, and at the end of the day, Appium is just a highly-specialized web
106
+ server. It was also decided that JavaScript as a language was accessible enough
107
+ that Appium would be able to grow into a larger community of open-source
108
+ developers with JavaScript than the other options on the table.
109
+
110
+ In just a few days, the team leveraged the existing work on Appium and had
111
+ a new version of Appium with as much functionality as the previous Python
112
+ version. The foundation had been laid for Appium's basic architecture, and we
113
+ have been successfully building on it since. A few weeks into this sprint,
114
+ Jonathan Lipps was formally designated project lead and he began to strategize
115
+ how to get more people from the community involved with Appium's development.
116
+
117
+ ## Appium Around the World
118
+
119
+ Ultimately, Jonathan decided that getting Appium in front of as many developers
120
+ at conferences and meetups was the best way to attract users and contributions.
121
+ Appium in its new incarnation was debuted at the [Google Test Automation
122
+ Conference 2013](https://www.youtube.com/watch?v=1J0aXDbjiUE). Later in 2013,
123
+ Appium was presented at conferences and meetups all around the US, as well as
124
+ in England, Poland, Portugal, and Australia. Notably, Jonathan had Appium
125
+ [perform as instruments in a band](https://www.youtube.com/watch?v=zsbNVkayYRQ)
126
+ and Dan Cuellar put together a fun [Appium video
127
+ montage](https://www.youtube.com/watch?v=xkzrEn0v0II) for Selenium Conference.
128
+
129
+ But during all these presentations and conferences, the project continued to
130
+ develop. Early in 2013 we released Android and Selendroid support, making
131
+ Appium the first truly cross-platform automation framework. The project also
132
+ continued to attract users and contributors, and by the end of 2013, we'd
133
+ already had well over 1,000 commits.
134
+
135
+ ## The Road to Appium 1.0
136
+
137
+ Appium began to grow and mature significantly. In May 2014,
138
+ we released Appium 1.0, which stood as a milestone in Appium's development.
139
+ Appium was given
140
+ [various](https://www.prnewswire.com/news-releases/black-duck-announces-black-duck-open-source-rookies-of-the-year-winners-242383341.html)
141
+ [awards](https://www.infoworld.com/article/2241247/164642-bossie-awards-2014-the-best-open-source-application-development-tools.html)
142
+ and became the most popular open-source cross-platform mobile automation
143
+ framework. Stability improved, bugs were prioritized and fixed, and features
144
+ added. Sauce Labs increased the number of developers it donated to working
145
+ on Appium, but the entire community stayed involved in guiding the project and
146
+ contributing to it, and project governance continued to happen in the open, on
147
+ public mailing lists and GitHub's issue tracker.
148
+
149
+ ## The Appium Umbrella Broadens
150
+
151
+ Eventually, it became clear that the Appium codebase was not optimized for
152
+ a large team of distributed, sometime contributors. We took the opportunity as
153
+ a committer team to rewrite Appium from the ground up, using a more modern
154
+ version of the JavaScript language, and redoing Appium's architecture so that
155
+ it was easy for users or third-party developers to build their own Appium
156
+ "drivers". We wanted for it to be easier for new contributors to get ramped up
157
+ on the Appium codebase, and to see support for new platforms added to Appium by
158
+ groups other than the core team. That vision has begun to be fulfilled, with
159
+ groups like Microsoft and Youi.tv adding drivers to Appium for Windows desktop
160
+ app automation and Youi.tv app automation, respectively.
161
+
162
+ ## Appium To The People
163
+
164
+ In late 2016, Sauce Labs donated Appium as a project to the [JS
165
+ Foundation](https://js.foundation), in order to cement for the world Sauce's
166
+ commitment that Appium remains open source. The JS Foundation is a non-profit
167
+ open source stewardship organization which takes responsibility for holding the
168
+ copyright for open source projects, as well as ensuring they have a long and
169
+ successful tenure in the community. As a result of our move to a non-profit
170
+ foundation, we hope that the door will open even more widely for new
171
+ contributors, either as individuals or representing one of the many companies
172
+ which now have an interest in seeing Appium move forward.
173
+
174
+ Eventually, the JS Foundation merged into the [OpenJS Foundation](https://openjsf.org),
175
+ and Appium became an Impact Project in the foundation.
176
+
177
+ ## Appium 2.0
178
+
179
+ Appium 2 was released in 2023 and introduced an entirely revamped architecture, shifting focus to Appium
180
+ as an ecosystem rather than an all-in-one project. This unlocked the ability for anyone to develop
181
+ and share their own Appium extensions (drivers and plugins), opening up a world of possibilities
182
+ for automation-related development for platforms far beyond iOS and Android! As a result,
183
+ many third-party extensions were created, such as new drivers for Flutter and Windows, plugins for
184
+ mocking APIs and managing device farms, new Appium clients based on Rust and Swift, and much more.
185
+
186
+ Around this time was also when we started a sponsorship program for Appium, which attracted various
187
+ major and minor sponsors alike. This allowed us to give back to the Appium community, by compensating
188
+ contributors for their voluntary work on the project.
189
+
190
+ ## Appium 3.0
191
+
192
+ 2025 saw the release of Appium 3. This update was a lot smaller than Appium 2 and included only a
193
+ few behavioral changes, instead focusing on removing deprecated code and updating compatibility for
194
+ more modern ecosystems. Still, this reduced scope was also to be expected: since Appium 2, the
195
+ main feature development efforts had shifted to individual drivers and plugins, many of which had
196
+ gone through multiple major updates during the Appium 2 era.
@@ -0,0 +1,39 @@
1
+ ---
2
+ hide:
3
+ - toc
4
+
5
+ title: Appium in a Nutshell
6
+ ---
7
+
8
+ As mentioned on the main page, Appium aims to support UI automation of many _different platforms_
9
+ (mobile, web, desktop, etc.). Not only that, but it also aims to support automation code written in
10
+ _different languages_ (JS, Java, Python, etc.). Combining all of this functionality in a single
11
+ program is a very daunting, if not impossible task!
12
+
13
+ In order to achieve this, Appium is effectively split into four parts:
14
+
15
+ <div class="grid cards" markdown>
16
+
17
+ - :material-image-filter-center-focus-strong: __Appium Core__ - defines the core APIs
18
+ - :material-car: __Drivers__ - implement connectivity to specific platforms
19
+ - :octicons-code-16: __Clients__ - implement Appium's API in specific languages
20
+ - :fontawesome-solid-plug: __Plugins__ - change or extend Appium's core functionality
21
+
22
+ </div>
23
+
24
+ Therefore, in order to start automating something with Appium, you need to:
25
+
26
+ - Install Appium itself
27
+ - Install a driver for your target platform
28
+ - Install a client library for your target programming language
29
+ - (Optional) install one or more plugins
30
+
31
+ These are the basics! If you are ready to jump in, proceed with the [Quickstart](../quickstart/index.md)!
32
+
33
+ If you wish to learn more details about how it all works, see these pages for background material:
34
+
35
+ - [Appium Core](./appium.md)
36
+ - [Appium Drivers](./drivers.md)
37
+ - [Appium Clients](./clients.md)
38
+
39
+ Finally, to learn about the origins of Appium, check out the [Appium Project History](./history.md).
@@ -0,0 +1,29 @@
1
+ ---
2
+ hide:
3
+ - toc
4
+
5
+ title: Getting Started
6
+ ---
7
+
8
+ Let's get up and running with Appium! To successfully use this quickstart, it's recommended that
9
+ you first have read the [Introduction](../intro/index.md), so that you understand the concepts involved in
10
+ running Appium and writing Appium scripts.
11
+
12
+ The basic plan for this quickstart is as follows:
13
+
14
+ 1. Install Appium
15
+ 1. Install an Appium driver and its dependencies
16
+ - This guide provides instructions for the [UiAutomator2 driver](https://github.com/appium/appium-uiautomator2-driver)
17
+ 1. Install an Appium client library in your language of choice
18
+ - This guide contains options for JavaScript, Python, Java, Ruby, and .NET
19
+ 1. Write and run a simple Appium automation script using a sample application
20
+
21
+ ### Requirements
22
+
23
+ Before getting started, make sure your system satisfies the
24
+ [requirements](../quickstart/requirements.md) for running the Appium server. Additional requirements
25
+ will be discussed in conjunction with installing the UiAutomator2 driver. The guide also assumes
26
+ you have basic command line proficiency on your platform, for example being able to run commands, set
27
+ and persist environment variables, etc...
28
+
29
+ Now you're ready to get started! So head on over to [Installing Appium](./install.md).
@@ -0,0 +1,50 @@
1
+ ---
2
+ hide:
3
+ - toc
4
+
5
+ title: Install Appium
6
+ ---
7
+
8
+ !!! info
9
+
10
+ Before installing, make sure to check the [System Requirements](./requirements.md).
11
+
12
+ Appium can be installed globally using `npm`:
13
+
14
+ ```bash
15
+ npm install -g appium
16
+ ```
17
+
18
+ !!! note
19
+
20
+ Other package managers are not currently supported.
21
+
22
+ ## Starting Appium
23
+
24
+ Appium can be started [using the command line](../reference/cli/index.md):
25
+
26
+ ```
27
+ appium
28
+ ```
29
+
30
+ This launches the Appium server process, which loads all the installed Appium drivers, and
31
+ begins waiting for new session requests from client connections (such as test automation scripts).
32
+ Since the server process is independent from its clients, it must be explicitly launched before
33
+ attempting to start a new session.
34
+
35
+ When the server is launched, the console log will list all the valid URLs that clients can use to
36
+ connect to this server:
37
+
38
+ ```
39
+ [Appium] You can provide the following URLs in your client code to connect to this server:
40
+ [Appium] http://127.0.0.1:4723/ (only accessible from the same host)
41
+ (... any other URLs ...)
42
+ ```
43
+
44
+ Once a client requests a new session, the Appium server process will start logging all details about
45
+ this session until its termination. Keep this in mind - if you ever encounter issues with Appium
46
+ tests, you can always check the server log for more details.
47
+
48
+ So what's next? Even though Appium is installed and running, it does not come bundled with any
49
+ drivers, which means it cannot automate anything yet. We will therefore set up automation for
50
+ Android - continue to [Installing the UiAutomator2 Driver](./uiauto2-driver.md).
@@ -0,0 +1,23 @@
1
+ ---
2
+ hide:
3
+ - toc
4
+
5
+ title: Next Steps
6
+ ---
7
+
8
+ Now that you've successfully set up your system for Android automation and run a simple test,
9
+ you'll want to continue exploring this documentation. In particular, these are good guides and
10
+ reference materials especially for beginners:
11
+
12
+ - The [Ecosystem](../ecosystem/index.md) page: browse the available drivers, clients, plugins, and tools
13
+ - [Managing Appium Drivers and Plugins](../guides/managing-exts.md)
14
+ - [Capabilities](../guides/caps.md)
15
+ - [Settings](../guides/settings.md)
16
+
17
+ You'll also find that the [Appium Inspector](https://github.com/appium/appium-inspector) is an
18
+ indispensable tool for writing Appium tests, as it enables visual inspection of apps and
19
+ helps you to discover element locators for use in your test scripts.
20
+
21
+ You might also take advantage of one of the many online Appium courses available to you.
22
+
23
+ Good luck and have fun!
@@ -0,0 +1,29 @@
1
+ ---
2
+ hide:
3
+ - toc
4
+
5
+ title: System Requirements
6
+ ---
7
+
8
+ The basic requirements for the Appium server are:
9
+
10
+ * A macOS, Linux, or Windows operating system
11
+ * [Node.js](https://nodejs.org) version in the [SemVer](https://semver.org) range `^20.19.0 || ^22.12.0 || >=24.0.0`
12
+ * LTS is recommended
13
+ * [`npm`](https://npmjs.com) version `>=10` (`npm` is usually bundled with Node.js, but can be upgraded
14
+ independently)
15
+
16
+ By itself, Appium is relatively lightweight and doesn't have significant disk space or RAM
17
+ requirements. It can even be run in resource-constrained environments like Raspberry Pi, so long as
18
+ Node.js is available.
19
+
20
+ ### Driver Requirements
21
+
22
+ Drivers for automating specific platforms will likely have other requirements. Refer to the
23
+ documentation of the [Appium driver(s)](../ecosystem/drivers.md) for that platform for additional
24
+ dependencies. It is almost universally the case that Appium drivers for a given platform will
25
+ require the developer toolchain and SDKs for that platform to be installed.
26
+
27
+ In order to assist with driver requirements, each (official) driver comes with the Appium Doctor tool,
28
+ which allows to verify if all requirements have been set up. Learn more about how to use this tool in
29
+ the [Command-Line Usage documentation](../reference/cli/extensions.md#doctor).
@@ -0,0 +1,105 @@
1
+ ---
2
+ hide:
3
+ - toc
4
+
5
+ title: Write a Test (.NET)
6
+ ---
7
+
8
+ The [Appium .NET Client](https://github.com/appium/dotnet-client/) is
9
+ an official Appium client in C#. This driver is an extension of the Selenium C# client. It has all the functionalities of the regular driver, but add Appium-specific methods on top of this. The driver is available on the public NuGet Gallery as [Appium.WebDriver](https://www.nuget.org/packages/Appium.WebDriver/).
10
+
11
+ Now, we get inside the directory and create a new [NUnit](https://nunit.org/) project. We will also add the references to the Appium.Net driver, and other dependencies.
12
+
13
+ ```bash
14
+ cd dotnet-client
15
+ dotnet new nunit --name appiumtest
16
+
17
+ cd appiumtest
18
+
19
+ # This will install the latest 5.x version
20
+ dotnet add package Appium.WebDriver --prerelease
21
+ dotnet add package Newtonsoft.Json --version 13.0.3
22
+ ```
23
+
24
+ Once this is done, your project should have a placeholder file `UnitTest1.cs`. We will replace the code to include the OpenQA namespaces, an initialization of the driver, and the actual test.
25
+
26
+ ```C# title="UnitTest1.cs"
27
+ using OpenQA.Selenium;
28
+ using OpenQA.Selenium.Appium;
29
+ using OpenQA.Selenium.Appium.Android;
30
+ using OpenQA.Selenium.Appium.Enums;
31
+
32
+ namespace appiumtest;
33
+
34
+ public class Tests
35
+ {
36
+ private AndroidDriver _driver;
37
+
38
+ [OneTimeSetUp]
39
+ public void SetUp()
40
+ {
41
+ var serverUri = new Uri(Environment.GetEnvironmentVariable("APPIUM_HOST") ?? "http://127.0.0.1:4723/");
42
+ var driverOptions = new AppiumOptions() {
43
+ AutomationName = AutomationName.AndroidUIAutomator2,
44
+ PlatformName = "Android",
45
+ DeviceName = "Android Emulator",
46
+ };
47
+
48
+ driverOptions.AddAdditionalAppiumOption("appPackage", "com.android.settings");
49
+ driverOptions.AddAdditionalAppiumOption("appActivity", ".Settings");
50
+ // NoReset assumes the app com.google.android is preinstalled on the emulator
51
+ driverOptions.AddAdditionalAppiumOption("noReset", true);
52
+
53
+ _driver = new AndroidDriver(serverUri, driverOptions, TimeSpan.FromSeconds(180));
54
+ _driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10);
55
+ }
56
+
57
+ [OneTimeTearDown]
58
+ public void TearDown()
59
+ {
60
+ _driver.Dispose();
61
+ }
62
+
63
+ [Test]
64
+ public void TestFindApps()
65
+ {
66
+ _driver.StartActivity("com.android.settings", ".Settings");
67
+ _driver.FindElement(By.XPath("//*[@text='Apps']")).Click();
68
+ }
69
+ }
70
+ ```
71
+
72
+ !!! note
73
+
74
+ It's not within the scope of this guide to give a complete run-down on the dotnet client
75
+ library or everything that's happening here, so we'll leave the code itself unexplained in
76
+ detail for now. You may want to read up particularly on Appium
77
+ [Capabilities](../guides/caps.md) in addition to familiarizing yourself with the
78
+ [dotnet client driver documentation](https://github.com/appium/dotnet-client/) for a fuller explanation
79
+ of the various API commands you see and what their purpose is.
80
+
81
+ Basically, this code is doing the following:
82
+
83
+ 1. Defining a set of "Capabilities" (parameters) to send to the Appium server so Appium knows what
84
+ kind of thing you want to automate. Some of these parameters can be overridden using environment variables.
85
+ 1. Starting an Appium session on the built-in Android settings app.
86
+ 1. Finding the "Apps" list item and clicking it.
87
+ 1. Ending the Appium session.
88
+
89
+ That's it! Let's give it a try. Before you run the test, make sure that you have an Appium server
90
+ running in another terminal session, otherwise you'll get an error about not being able to connect
91
+ to one. Then, you can execute the script:
92
+
93
+ ```bash
94
+ dotnet test
95
+
96
+ # Example output:
97
+ # Starting test execution, please wait...
98
+ # A total of 1 test files matched the specified pattern.
99
+
100
+ # Passed! - Failed: 0, Passed: 1, Skipped: 0, Total: 1, Duration: 323 ms - appiumtest.dll (net7.0)
101
+ ```
102
+
103
+ If all goes well, you'll see the Settings app open up and navigate to the "Apps" view in the emulator before the app closes again.
104
+
105
+ Congratulations, you've started your Appium journey! Read on for some [next steps](./next-steps.md) to explore.
@@ -0,0 +1,23 @@
1
+ ---
2
+ hide:
3
+ - toc
4
+
5
+ title: Write a Test (Java)
6
+ ---
7
+
8
+ The Appium team maintains an official [client](https://github.com/appium/java-client) for the Java programming language.
9
+ It is built on top of [Selenium](https://github.com/SeleniumHQ/selenium).
10
+ You can also use this client in your Kotlin projects.
11
+
12
+ Follow the [Add Appium java client to your test framework](https://github.com/appium/java-client#add-appium-java-client-to-your-test-framework)
13
+ tutorial in order to connect the library to your test framework sources.
14
+
15
+ The Appium Java client has dedicated classes to support most of the official Appium drivers. For other drivers
16
+ you could simply use the [AppiumDriver](https://github.com/appium/java-client/blob/master/src/main/java/io/appium/java_client/AppiumDriver.java) class
17
+ or build your custom derivatives from it. Check the [Drivers Support](https://github.com/appium/java-client#drivers-support)
18
+ article to learn more about the current driver class implementations.
19
+
20
+ Follow the [Usage Examples](https://github.com/appium/java-client#usage-examples) article in order understand
21
+ how to invoke Java client features from your test framework.
22
+
23
+ Once you've managed to successfully run a test, you can read on for some [next steps](./next-steps.md) to explore.
@@ -0,0 +1,75 @@
1
+ ---
2
+ hide:
3
+ - toc
4
+
5
+ title: Write a Test (JS)
6
+ ---
7
+
8
+ To write an Appium test in JavaScript (Node.js), we need to choose an Appium-compatible client
9
+ library. The best-maintained library and the one the Appium team recommends using is
10
+ [WebdriverIO](https://webdriver.io), so let's use that. Since we already have Appium installed we
11
+ know our Node and NPM requirements are already satisfied. So just create a new project directory
12
+ somewhere on your computer and then initialize a new Node.js project in it:
13
+
14
+ ```bash
15
+ npm init
16
+ ```
17
+
18
+ It doesn't really matter what you put in the prompts, just so long as you end up with a valid
19
+ `package.json`.
20
+
21
+
22
+ Now, install the `webdriverio` package via NPM:
23
+
24
+ ```bash
25
+ npm i --save-dev webdriverio
26
+ ```
27
+
28
+ Once this is done, your `package.json` file should include a section like the following:
29
+
30
+ ```json title="package.json"
31
+ --8<-- "./sample-code/quickstarts/js/package.json"
32
+ ```
33
+
34
+ Now it's time to type up the test itself. Create a new file called `test.js` with the following
35
+ contents:
36
+
37
+ ```js title="test.js"
38
+ --8<-- "./sample-code/quickstarts/js/test.js"
39
+ ```
40
+
41
+ !!! note
42
+
43
+ It's not within the scope of this guide to give a complete run-down on the WebdriverIO client
44
+ library or everything that's happening here, so we'll leave the code itself unexplained in
45
+ detail for now. You may want to read up particularly on Appium
46
+ [Capabilities](../guides/caps.md) in addition to familiarizing yourself with the excellent
47
+ [WebdriverIO documentation](https://webdriver.io/docs/gettingstarted) for a fuller explanation
48
+ of the various API commands you see and what their purpose is.
49
+
50
+ !!! note
51
+
52
+ The sample code is available from [GitHub Appium repository](https://github.com/appium/appium/tree/master/packages/appium/sample-code/quickstarts/js).
53
+
54
+
55
+ Basically, this code is doing the following:
56
+
57
+ 1. Defining a set of "Capabilities" (parameters) to send to the Appium server so Appium knows what
58
+ kind of thing you want to automate.
59
+ 1. Starting an Appium session on the built-in Android settings app.
60
+ 1. Finding the "Apps" list item and clicking it.
61
+ 1. Pausing for a moment purely for visual effect.
62
+ 1. Ending the Appium session.
63
+
64
+ That's it! Let's give it a try. Before you run the test, make sure that you have an Appium server
65
+ running in another terminal session, otherwise you'll get an error about not being able to connect
66
+ to one. Then, you can execute the script:
67
+
68
+ ```bash
69
+ node test.js
70
+ ```
71
+
72
+ If all goes well, you'll see the Settings app open up and navigate to the "Apps" view before the
73
+ app closes again.
74
+
75
+ Congratulations, you've started your Appium journey! Read on for some [next steps](./next-steps.md) to explore.
@@ -0,0 +1,60 @@
1
+ ---
2
+ hide:
3
+ - toc
4
+
5
+ title: Write a Test (Python)
6
+ ---
7
+
8
+ The [Appium Python Client](https://github.com/appium/python-client) is
9
+ an official Appium client in Python, which is available via pypi under the [Appium-Python-Client](https://pypi.org/project/Appium-Python-Client/) package name.
10
+ It inherits from the [Selenium Python Binding](https://pypi.org/project/selenium/),
11
+ so installing the Appium Python Client includes the selenium binding.
12
+
13
+ ```bash
14
+ pip install Appium-Python-Client
15
+ ```
16
+
17
+ This example uses Python's built-in `unittest` module, though you can use any Python test framework you want.
18
+ The Appium Python client adds the `appium:` vendor prefix automatically.
19
+ You usually do not need to worry about the prefix.
20
+
21
+ ```python title="test.py"
22
+ --8<-- "./sample-code/quickstarts/py/test.py"
23
+ ```
24
+
25
+ !!! note
26
+
27
+ It's not within the scope of this guide to give a complete run-down on the Python client
28
+ library or everything that's happening here, so we'll leave the code itself unexplained in detail for now.
29
+
30
+ - You may want to read up particularly on Appium [Capabilities](../guides/caps.md).
31
+ - [functional test code](https://github.com/appium/python-client/tree/master/test/functional) in Python Client GitHub repository should help to find more working example.
32
+ - [Documentation](https://appium.github.io/python-client-sphinx/) also helps to find methods
33
+ defined in the Appium Python Client.
34
+
35
+ !!! note
36
+
37
+ The sample code is available from [GitHub Appium repository](https://github.com/appium/appium/tree/master/packages/appium/sample-code/quickstarts/py).
38
+
39
+
40
+ Basically, this code is doing the following:
41
+
42
+ 1. Defining a set of "Capabilities" (parameters) to send to the Appium server so Appium knows what
43
+ kind of thing you want to automate.
44
+ 1. Starting an Appium session on the built-in Android settings app.
45
+ 1. Finding the "Apps" list item and clicking it.
46
+ 1. Pausing for a moment purely for visual effect.
47
+ 1. Ending the Appium session.
48
+
49
+ That's it! Let's give it a try. Before you run the test, make sure that you have an Appium server
50
+ running in another terminal session, otherwise you'll get an error about not being able to connect
51
+ to one. Then, you can execute the script:
52
+
53
+ ```bash
54
+ python test.py
55
+ ```
56
+
57
+ If all goes well, you'll see the Settings app open up and navigate to the "Apps" view before the
58
+ app closes again.
59
+
60
+ Congratulations, you've started your Appium journey! Read on for some [next steps](./next-steps.md) to explore.