@testdriverai/agent 7.8.0-canary.10

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 (528) hide show
  1. package/.claude/settings.local.json +7 -0
  2. package/.env.example +4 -0
  3. package/.prettierignore +4 -0
  4. package/.prettierrc +1 -0
  5. package/CHANGELOG.md +953 -0
  6. package/README.md +81 -0
  7. package/agent/events.js +135 -0
  8. package/agent/index.js +2450 -0
  9. package/agent/interface.js +35 -0
  10. package/agent/lib/analytics.js +22 -0
  11. package/agent/lib/censorship.js +75 -0
  12. package/agent/lib/commander.js +246 -0
  13. package/agent/lib/commands.js +1684 -0
  14. package/agent/lib/config.js +60 -0
  15. package/agent/lib/generator.js +91 -0
  16. package/agent/lib/http.js +144 -0
  17. package/agent/lib/logger.js +56 -0
  18. package/agent/lib/outputs.js +29 -0
  19. package/agent/lib/parser.js +209 -0
  20. package/agent/lib/redraw.js +386 -0
  21. package/agent/lib/resources/cursor-2.png +0 -0
  22. package/agent/lib/sandbox.js +1104 -0
  23. package/agent/lib/sdk.js +633 -0
  24. package/agent/lib/session.js +25 -0
  25. package/agent/lib/source-mapper.js +342 -0
  26. package/agent/lib/subimage/index.js +77 -0
  27. package/agent/lib/subimage/opencv.js +69 -0
  28. package/agent/lib/system.js +204 -0
  29. package/agent/lib/theme.js +14 -0
  30. package/agent/lib/valid-version.js +21 -0
  31. package/agent/lib/validation.js +169 -0
  32. package/ai/.claude-plugin/plugin.json +9 -0
  33. package/ai/agents/testdriver.md +638 -0
  34. package/ai/skills/testdriver-ai/SKILL.md +204 -0
  35. package/ai/skills/testdriver-assert/SKILL.md +315 -0
  36. package/ai/skills/testdriver-aws-setup/SKILL.md +448 -0
  37. package/ai/skills/testdriver-cache/SKILL.md +221 -0
  38. package/ai/skills/testdriver-caching/SKILL.md +124 -0
  39. package/ai/skills/testdriver-captcha/SKILL.md +158 -0
  40. package/ai/skills/testdriver-ci-cd/SKILL.md +602 -0
  41. package/ai/skills/testdriver-click/SKILL.md +286 -0
  42. package/ai/skills/testdriver-client/SKILL.md +477 -0
  43. package/ai/skills/testdriver-cloud/SKILL.md +119 -0
  44. package/ai/skills/testdriver-customizing-devices/SKILL.md +319 -0
  45. package/ai/skills/testdriver-dashcam/SKILL.md +418 -0
  46. package/ai/skills/testdriver-debugging-with-screenshots/SKILL.md +401 -0
  47. package/ai/skills/testdriver-device-config/SKILL.md +317 -0
  48. package/ai/skills/testdriver-double-click/SKILL.md +102 -0
  49. package/ai/skills/testdriver-elements/SKILL.md +605 -0
  50. package/ai/skills/testdriver-enterprise/SKILL.md +114 -0
  51. package/ai/skills/testdriver-errors/SKILL.md +246 -0
  52. package/ai/skills/testdriver-events/SKILL.md +356 -0
  53. package/ai/skills/testdriver-examples/SKILL.md +7 -0
  54. package/ai/skills/testdriver-exec/SKILL.md +317 -0
  55. package/ai/skills/testdriver-find/SKILL.md +829 -0
  56. package/ai/skills/testdriver-focus-application/SKILL.md +293 -0
  57. package/ai/skills/testdriver-generating-tests/SKILL.md +36 -0
  58. package/ai/skills/testdriver-hover/SKILL.md +278 -0
  59. package/ai/skills/testdriver-locating-elements/SKILL.md +71 -0
  60. package/ai/skills/testdriver-making-assertions/SKILL.md +32 -0
  61. package/ai/skills/testdriver-mcp/SKILL.md +7 -0
  62. package/ai/skills/testdriver-mcp-workflow/SKILL.md +410 -0
  63. package/ai/skills/testdriver-mouse-down/SKILL.md +161 -0
  64. package/ai/skills/testdriver-mouse-up/SKILL.md +164 -0
  65. package/ai/skills/testdriver-parse/SKILL.md +236 -0
  66. package/ai/skills/testdriver-performing-actions/SKILL.md +54 -0
  67. package/ai/skills/testdriver-press-keys/SKILL.md +348 -0
  68. package/ai/skills/testdriver-provision/SKILL.md +331 -0
  69. package/ai/skills/testdriver-quickstart/SKILL.md +144 -0
  70. package/ai/skills/testdriver-redraw/SKILL.md +214 -0
  71. package/ai/skills/testdriver-reusable-code/SKILL.md +249 -0
  72. package/ai/skills/testdriver-right-click/SKILL.md +123 -0
  73. package/ai/skills/testdriver-running-tests/SKILL.md +185 -0
  74. package/ai/skills/testdriver-screenshot/SKILL.md +248 -0
  75. package/ai/skills/testdriver-screenshots/SKILL.md +184 -0
  76. package/ai/skills/testdriver-scroll/SKILL.md +335 -0
  77. package/ai/skills/testdriver-secrets/SKILL.md +115 -0
  78. package/ai/skills/testdriver-self-hosted/SKILL.md +65 -0
  79. package/ai/skills/testdriver-test-writer/SKILL.md +448 -0
  80. package/ai/skills/testdriver-testdriver/SKILL.md +628 -0
  81. package/ai/skills/testdriver-testdriver-mechanic/SKILL.md +165 -0
  82. package/ai/skills/testdriver-type/SKILL.md +357 -0
  83. package/ai/skills/testdriver-variables/SKILL.md +111 -0
  84. package/ai/skills/testdriver-wait/SKILL.md +50 -0
  85. package/ai/skills/testdriver-waiting-for-elements/SKILL.md +90 -0
  86. package/ai/skills/testdriver-what-is-testdriver/SKILL.md +54 -0
  87. package/bin/testdriverai.js +22 -0
  88. package/debugger/bg.png +0 -0
  89. package/debugger/icon.png +0 -0
  90. package/debugger/index.html +469 -0
  91. package/debugger/td.png +0 -0
  92. package/debugger/tray-buffered.png +0 -0
  93. package/debugger/tray.png +0 -0
  94. package/docs/GITHUB_COMMENTS.md +330 -0
  95. package/docs/GITHUB_COMMENTS_ANNOUNCEMENT.md +167 -0
  96. package/docs/QUICK-START-GITHUB-COMMENTS.md +84 -0
  97. package/docs/TEST-GITHUB-COMMENTS.md +129 -0
  98. package/docs/_data/examples-manifest.json +177 -0
  99. package/docs/_data/examples-manifest.schema.json +41 -0
  100. package/docs/_scripts/extract-example-urls.js +165 -0
  101. package/docs/_scripts/generate-examples.js +560 -0
  102. package/docs/_scripts/generate-skills.js +154 -0
  103. package/docs/_scripts/link-replacer.js +164 -0
  104. package/docs/_scripts/upload-docs-to-openai.js +284 -0
  105. package/docs/changelog.mdx +161 -0
  106. package/docs/claude-mcp-plugin.mdx +160 -0
  107. package/docs/docs.json +442 -0
  108. package/docs/github-integration-setup.md +266 -0
  109. package/docs/guide/best-practices-polling.mdx +174 -0
  110. package/docs/images/content/account/newprojectsettings.png +0 -0
  111. package/docs/images/content/account/projectpage.png +0 -0
  112. package/docs/images/content/account/projectreplays.png +0 -0
  113. package/docs/images/content/account/team-manage.png +0 -0
  114. package/docs/images/content/account/teampage.png +0 -0
  115. package/docs/images/content/extension/cursor.svg +1 -0
  116. package/docs/images/content/extension/vscode.svg +57 -0
  117. package/docs/images/content/extension/windsurf.svg +3 -0
  118. package/docs/images/content/parse/output.png +0 -0
  119. package/docs/images/content/self-hosted/launchtemplateid.png +0 -0
  120. package/docs/images/content/side-by-side.png +0 -0
  121. package/docs/images/content/vscode/ide-full.png +0 -0
  122. package/docs/images/content/vscode/running.png +0 -0
  123. package/docs/images/content/vscode/v7-chat.png +0 -0
  124. package/docs/images/content/vscode/v7-choose-agent.png +0 -0
  125. package/docs/images/content/vscode/v7-full.png +0 -0
  126. package/docs/images/content/vscode/v7-onboarding.png +0 -0
  127. package/docs/images/content/vscode/vscode-2-assert.png +0 -0
  128. package/docs/images/content/vscode/vscode-agent-preview.png +0 -0
  129. package/docs/images/content/vscode/vscode-copilot-ask.png +0 -0
  130. package/docs/images/content/vscode/vscode-file-creation.png +0 -0
  131. package/docs/images/content/vscode/vscode-install.png +0 -0
  132. package/docs/images/content/vscode/vscode-overview.png +0 -0
  133. package/docs/images/content/vscode/vscode-setup-walkthrough.png +0 -0
  134. package/docs/images/content/vscode/vscode-stopchat.png +0 -0
  135. package/docs/images/content/vscode/vscode-stoptest.png +0 -0
  136. package/docs/images/content/vscode/vscode-tdservice.png +0 -0
  137. package/docs/images/content/vscode/vscode-test-output.png +0 -0
  138. package/docs/images/content/vscode/vscode-testhistory.png +0 -0
  139. package/docs/images/content/vscode/vscode-testpane-runtests.png +0 -0
  140. package/docs/images/content/vscode/vscode-testpane.png +0 -0
  141. package/docs/images/template/dark.png +0 -0
  142. package/docs/images/template/icon.png +0 -0
  143. package/docs/images/template/light.png +0 -0
  144. package/docs/snippets/calendar-link.mdx +4 -0
  145. package/docs/snippets/gitignore-warning.mdx +7 -0
  146. package/docs/snippets/lifecycle-warning.mdx +6 -0
  147. package/docs/snippets/test-prereqs.mdx +12 -0
  148. package/docs/snippets/tests/assert-replay.mdx +7 -0
  149. package/docs/snippets/tests/assert-yaml.mdx +8 -0
  150. package/docs/snippets/tests/exec-js-replay.mdx +7 -0
  151. package/docs/snippets/tests/exec-js-yaml.mdx +32 -0
  152. package/docs/snippets/tests/exec-shell-replay.mdx +7 -0
  153. package/docs/snippets/tests/exec-shell-yaml.mdx +15 -0
  154. package/docs/snippets/tests/hover-image-replay.mdx +7 -0
  155. package/docs/snippets/tests/hover-image-yaml.mdx +17 -0
  156. package/docs/snippets/tests/hover-text-replay.mdx +7 -0
  157. package/docs/snippets/tests/hover-text-with-description-replay.mdx +7 -0
  158. package/docs/snippets/tests/hover-text-with-description-yaml.mdx +24 -0
  159. package/docs/snippets/tests/hover-text-yaml.mdx +14 -0
  160. package/docs/snippets/tests/match-image-replay.mdx +7 -0
  161. package/docs/snippets/tests/match-image-yaml.mdx +17 -0
  162. package/docs/snippets/tests/press-keys-replay.mdx +7 -0
  163. package/docs/snippets/tests/press-keys-yaml.mdx +36 -0
  164. package/docs/snippets/tests/remember-replay.mdx +7 -0
  165. package/docs/snippets/tests/remember-yaml.mdx +28 -0
  166. package/docs/snippets/tests/scroll-replay.mdx +7 -0
  167. package/docs/snippets/tests/scroll-until-image-replay.mdx +7 -0
  168. package/docs/snippets/tests/scroll-until-image-yaml.mdx +14 -0
  169. package/docs/snippets/tests/scroll-until-text-replay.mdx +7 -0
  170. package/docs/snippets/tests/scroll-until-text-yaml.mdx +17 -0
  171. package/docs/snippets/tests/scroll-yaml.mdx +30 -0
  172. package/docs/snippets/tests/type-repeated-replay.mdx +7 -0
  173. package/docs/snippets/tests/type-repeated-yaml.mdx +22 -0
  174. package/docs/snippets/tests/type-replay.mdx +7 -0
  175. package/docs/snippets/tests/type-yaml.mdx +28 -0
  176. package/docs/snippets/tests/wait-for-image-replay.mdx +7 -0
  177. package/docs/snippets/tests/wait-for-image-yaml.mdx +18 -0
  178. package/docs/snippets/tests/wait-for-text-replay.mdx +7 -0
  179. package/docs/snippets/tests/wait-for-text-yaml.mdx +18 -0
  180. package/docs/snippets/tests/wait-replay.mdx +7 -0
  181. package/docs/snippets/tests/wait-yaml.mdx +13 -0
  182. package/docs/styles.css +65 -0
  183. package/docs/v6/account/dashboard.mdx +16 -0
  184. package/docs/v6/account/enterprise.mdx +110 -0
  185. package/docs/v6/account/pricing.mdx +33 -0
  186. package/docs/v6/account/projects.mdx +33 -0
  187. package/docs/v6/account/team.mdx +35 -0
  188. package/docs/v6/action/ami.mdx +109 -0
  189. package/docs/v6/action/performance.mdx +105 -0
  190. package/docs/v6/action/secrets.mdx +93 -0
  191. package/docs/v6/apps/chrome-extensions.mdx +48 -0
  192. package/docs/v6/apps/desktop-apps.mdx +93 -0
  193. package/docs/v6/apps/mobile-apps.mdx +26 -0
  194. package/docs/v6/apps/static-websites.mdx +54 -0
  195. package/docs/v6/apps/tauri-apps.mdx +361 -0
  196. package/docs/v6/bugs/jira.mdx +232 -0
  197. package/docs/v6/cli/overview.mdx +66 -0
  198. package/docs/v6/commands/assert.mdx +45 -0
  199. package/docs/v6/commands/exec.mdx +276 -0
  200. package/docs/v6/commands/focus-application.mdx +44 -0
  201. package/docs/v6/commands/hover-image.mdx +69 -0
  202. package/docs/v6/commands/hover-text.mdx +47 -0
  203. package/docs/v6/commands/if.mdx +53 -0
  204. package/docs/v6/commands/match-image.mdx +67 -0
  205. package/docs/v6/commands/press-keys.mdx +87 -0
  206. package/docs/v6/commands/remember.mdx +49 -0
  207. package/docs/v6/commands/run.mdx +44 -0
  208. package/docs/v6/commands/scroll-until-image.mdx +66 -0
  209. package/docs/v6/commands/scroll-until-text.mdx +60 -0
  210. package/docs/v6/commands/scroll.mdx +69 -0
  211. package/docs/v6/commands/type.mdx +45 -0
  212. package/docs/v6/commands/wait-for-image.mdx +54 -0
  213. package/docs/v6/commands/wait-for-text.mdx +48 -0
  214. package/docs/v6/commands/wait.mdx +45 -0
  215. package/docs/v6/exporting/junit.mdx +218 -0
  216. package/docs/v6/exporting/playwright.mdx +197 -0
  217. package/docs/v6/features/auto-healing.mdx +144 -0
  218. package/docs/v6/features/generation.mdx +116 -0
  219. package/docs/v6/features/parallel-testing.mdx +151 -0
  220. package/docs/v6/features/reusable-snippets.mdx +131 -0
  221. package/docs/v6/features/selectorless.mdx +80 -0
  222. package/docs/v6/features/visual-assertions.mdx +139 -0
  223. package/docs/v6/getting-started/ci.mdx +146 -0
  224. package/docs/v6/getting-started/cli.mdx +91 -0
  225. package/docs/v6/getting-started/editing.mdx +100 -0
  226. package/docs/v6/getting-started/playwright.mdx +342 -0
  227. package/docs/v6/getting-started/running.mdx +48 -0
  228. package/docs/v6/getting-started/self-hosting.mdx +408 -0
  229. package/docs/v6/getting-started/vscode.mdx +88 -0
  230. package/docs/v6/guide/assertions.mdx +189 -0
  231. package/docs/v6/guide/authentication.mdx +136 -0
  232. package/docs/v6/guide/code.mdx +65 -0
  233. package/docs/v6/guide/dashcam.mdx +118 -0
  234. package/docs/v6/guide/environment-variables.mdx +26 -0
  235. package/docs/v6/guide/lifecycle.mdx +242 -0
  236. package/docs/v6/guide/locating.mdx +141 -0
  237. package/docs/v6/guide/protips.mdx +43 -0
  238. package/docs/v6/guide/variables.mdx +143 -0
  239. package/docs/v6/guide/waiting.mdx +130 -0
  240. package/docs/v6/importing/csv.mdx +196 -0
  241. package/docs/v6/importing/gherkin.mdx +143 -0
  242. package/docs/v6/importing/jira.mdx +164 -0
  243. package/docs/v6/importing/testrail.mdx +162 -0
  244. package/docs/v6/integrations/electron.mdx +146 -0
  245. package/docs/v6/integrations/netlify.mdx +100 -0
  246. package/docs/v6/integrations/vercel.mdx +125 -0
  247. package/docs/v6/interactive/explore.mdx +99 -0
  248. package/docs/v6/interactive/run.mdx +52 -0
  249. package/docs/v6/interactive/save.mdx +63 -0
  250. package/docs/v6/overview/comparison.mdx +101 -0
  251. package/docs/v6/overview/faq.mdx +162 -0
  252. package/docs/v6/overview/performance.mdx +52 -0
  253. package/docs/v6/overview/quickstart.mdx +137 -0
  254. package/docs/v6/overview/what-is-testdriver.mdx +85 -0
  255. package/docs/v6/scenarios/ai-chatbot.mdx +28 -0
  256. package/docs/v6/scenarios/cookie-banner.mdx +32 -0
  257. package/docs/v6/scenarios/file-upload.mdx +33 -0
  258. package/docs/v6/scenarios/form-filling.mdx +32 -0
  259. package/docs/v6/scenarios/log-in.mdx +75 -0
  260. package/docs/v6/scenarios/pdf-generation.mdx +25 -0
  261. package/docs/v6/scenarios/spell-check.mdx +22 -0
  262. package/docs/v6/security/action.mdx +84 -0
  263. package/docs/v6/security/agent.mdx +73 -0
  264. package/docs/v6/security/platform.mdx +77 -0
  265. package/docs/v6/tutorials/advanced-test.mdx +81 -0
  266. package/docs/v6/tutorials/basic-test.mdx +45 -0
  267. package/docs/v7/_drafts/agents.mdx +843 -0
  268. package/docs/v7/_drafts/architecture.mdx +399 -0
  269. package/docs/v7/_drafts/auto-cache-key.mdx +167 -0
  270. package/docs/v7/_drafts/awesome-logs-quick-ref.mdx +100 -0
  271. package/docs/v7/_drafts/best-practices.mdx +486 -0
  272. package/docs/v7/_drafts/caching-ai.mdx +215 -0
  273. package/docs/v7/_drafts/caching-selectors.mdx +424 -0
  274. package/docs/v7/_drafts/caching.mdx +366 -0
  275. package/docs/v7/_drafts/cli-to-sdk-migration.mdx +425 -0
  276. package/docs/v7/_drafts/commands/assert.mdx +45 -0
  277. package/docs/v7/_drafts/commands/exec.mdx +276 -0
  278. package/docs/v7/_drafts/commands/focus-application.mdx +44 -0
  279. package/docs/v7/_drafts/commands/hover-image.mdx +69 -0
  280. package/docs/v7/_drafts/commands/hover-text.mdx +47 -0
  281. package/docs/v7/_drafts/commands/if.mdx +53 -0
  282. package/docs/v7/_drafts/commands/match-image.mdx +67 -0
  283. package/docs/v7/_drafts/commands/press-keys.mdx +87 -0
  284. package/docs/v7/_drafts/commands/remember.mdx +49 -0
  285. package/docs/v7/_drafts/commands/run.mdx +44 -0
  286. package/docs/v7/_drafts/commands/scroll-until-image.mdx +66 -0
  287. package/docs/v7/_drafts/commands/scroll-until-text.mdx +60 -0
  288. package/docs/v7/_drafts/commands/scroll.mdx +69 -0
  289. package/docs/v7/_drafts/commands/type.mdx +45 -0
  290. package/docs/v7/_drafts/commands/wait-for-image.mdx +54 -0
  291. package/docs/v7/_drafts/commands/wait-for-text.mdx +48 -0
  292. package/docs/v7/_drafts/commands/wait.mdx +45 -0
  293. package/docs/v7/_drafts/configuration.mdx +378 -0
  294. package/docs/v7/_drafts/contributing.mdx +174 -0
  295. package/docs/v7/_drafts/core.mdx +458 -0
  296. package/docs/v7/_drafts/dashcam-title-feature.mdx +89 -0
  297. package/docs/v7/_drafts/debugging.mdx +349 -0
  298. package/docs/v7/_drafts/error-handling.mdx +501 -0
  299. package/docs/v7/_drafts/faq.mdx +393 -0
  300. package/docs/v7/_drafts/hooks.mdx +360 -0
  301. package/docs/v7/_drafts/init-command.mdx +95 -0
  302. package/docs/v7/_drafts/installation.mdx +420 -0
  303. package/docs/v7/_drafts/migration.mdx +562 -0
  304. package/docs/v7/_drafts/observable.mdx +604 -0
  305. package/docs/v7/_drafts/playwright.mdx +342 -0
  306. package/docs/v7/_drafts/plugin-migration.mdx +220 -0
  307. package/docs/v7/_drafts/powerful.mdx +419 -0
  308. package/docs/v7/_drafts/presets.mdx +210 -0
  309. package/docs/v7/_drafts/progressive-disclosure.mdx +230 -0
  310. package/docs/v7/_drafts/prompt-cache.mdx +200 -0
  311. package/docs/v7/_drafts/provision.mdx +390 -0
  312. package/docs/v7/_drafts/quick-start-test-recording.mdx +214 -0
  313. package/docs/v7/_drafts/readme.mdx +135 -0
  314. package/docs/v7/_drafts/reports.mdx +414 -0
  315. package/docs/v7/_drafts/scalable.mdx +763 -0
  316. package/docs/v7/_drafts/screenshot.mdx +155 -0
  317. package/docs/v7/_drafts/sdk-awesome-logs.mdx +468 -0
  318. package/docs/v7/_drafts/sdk-browser-rendering.mdx +167 -0
  319. package/docs/v7/_drafts/sdk-migration.mdx +474 -0
  320. package/docs/v7/_drafts/sdk-v7-complete.mdx +345 -0
  321. package/docs/v7/_drafts/self-hosting.mdx +369 -0
  322. package/docs/v7/_drafts/test-recording.mdx +382 -0
  323. package/docs/v7/_drafts/troubleshooting.mdx +526 -0
  324. package/docs/v7/_drafts/vitest-plugin.mdx +477 -0
  325. package/docs/v7/_drafts/vitest.mdx +535 -0
  326. package/docs/v7/_drafts/writing-tests.mdx +25 -0
  327. package/docs/v7/ai.mdx +205 -0
  328. package/docs/v7/assert.mdx +316 -0
  329. package/docs/v7/aws-setup.mdx +449 -0
  330. package/docs/v7/cache.mdx +223 -0
  331. package/docs/v7/caching.mdx +128 -0
  332. package/docs/v7/captcha.mdx +159 -0
  333. package/docs/v7/ci-cd.mdx +603 -0
  334. package/docs/v7/click.mdx +287 -0
  335. package/docs/v7/client.mdx +478 -0
  336. package/docs/v7/copilot/auto-healing.mdx +265 -0
  337. package/docs/v7/copilot/creating-tests.mdx +156 -0
  338. package/docs/v7/copilot/github.mdx +143 -0
  339. package/docs/v7/copilot/running-tests.mdx +149 -0
  340. package/docs/v7/copilot/setup.mdx +143 -0
  341. package/docs/v7/customizing-devices.mdx +319 -0
  342. package/docs/v7/dashcam.mdx +419 -0
  343. package/docs/v7/debugging-with-screenshots.mdx +402 -0
  344. package/docs/v7/device-config.mdx +317 -0
  345. package/docs/v7/double-click.mdx +102 -0
  346. package/docs/v7/elements.mdx +606 -0
  347. package/docs/v7/enterprise.mdx +9 -0
  348. package/docs/v7/errors.mdx +248 -0
  349. package/docs/v7/events.mdx +358 -0
  350. package/docs/v7/examples/ai.mdx +72 -0
  351. package/docs/v7/examples/assert.mdx +72 -0
  352. package/docs/v7/examples/captcha-api.mdx +92 -0
  353. package/docs/v7/examples/chrome-extension.mdx +132 -0
  354. package/docs/v7/examples/drag-and-drop.mdx +100 -0
  355. package/docs/v7/examples/element-not-found.mdx +67 -0
  356. package/docs/v7/examples/exec-output.mdx +85 -0
  357. package/docs/v7/examples/exec-pwsh.mdx +83 -0
  358. package/docs/v7/examples/focus-window.mdx +62 -0
  359. package/docs/v7/examples/hover-image.mdx +94 -0
  360. package/docs/v7/examples/hover-text.mdx +69 -0
  361. package/docs/v7/examples/installer.mdx +91 -0
  362. package/docs/v7/examples/launch-vscode-linux.mdx +101 -0
  363. package/docs/v7/examples/match-image.mdx +96 -0
  364. package/docs/v7/examples/press-keys.mdx +92 -0
  365. package/docs/v7/examples/scroll-keyboard.mdx +79 -0
  366. package/docs/v7/examples/scroll-until-image.mdx +81 -0
  367. package/docs/v7/examples/scroll-until-text.mdx +109 -0
  368. package/docs/v7/examples/scroll.mdx +81 -0
  369. package/docs/v7/examples/type.mdx +92 -0
  370. package/docs/v7/examples/windows-installer.mdx +89 -0
  371. package/docs/v7/exec.mdx +318 -0
  372. package/docs/v7/find.mdx +830 -0
  373. package/docs/v7/focus-application.mdx +294 -0
  374. package/docs/v7/generating-tests.mdx +36 -0
  375. package/docs/v7/hosted.mdx +158 -0
  376. package/docs/v7/hover.mdx +279 -0
  377. package/docs/v7/locating-elements.mdx +71 -0
  378. package/docs/v7/making-assertions.mdx +32 -0
  379. package/docs/v7/mcp.mdx +9 -0
  380. package/docs/v7/mouse-down.mdx +161 -0
  381. package/docs/v7/mouse-up.mdx +164 -0
  382. package/docs/v7/parse.mdx +237 -0
  383. package/docs/v7/performing-actions.mdx +54 -0
  384. package/docs/v7/press-keys.mdx +349 -0
  385. package/docs/v7/provision.mdx +333 -0
  386. package/docs/v7/quickstart.mdx +173 -0
  387. package/docs/v7/redraw.mdx +216 -0
  388. package/docs/v7/reusable-code.mdx +249 -0
  389. package/docs/v7/right-click.mdx +123 -0
  390. package/docs/v7/running-tests.mdx +185 -0
  391. package/docs/v7/screenshot.mdx +249 -0
  392. package/docs/v7/screenshots.mdx +186 -0
  393. package/docs/v7/scroll.mdx +336 -0
  394. package/docs/v7/secrets.mdx +115 -0
  395. package/docs/v7/self-hosted.mdx +149 -0
  396. package/docs/v7/type.mdx +358 -0
  397. package/docs/v7/variables.mdx +111 -0
  398. package/docs/v7/wait.mdx +52 -0
  399. package/docs/v7/waiting-for-elements.mdx +90 -0
  400. package/docs/v7/what-is-testdriver.mdx +54 -0
  401. package/eslint.config.js +67 -0
  402. package/examples/ai.test.mjs +31 -0
  403. package/examples/assert.test.mjs +47 -0
  404. package/examples/chrome-extension.test.mjs +97 -0
  405. package/examples/config.mjs +5 -0
  406. package/examples/element-not-found.test.mjs +27 -0
  407. package/examples/exec-output.test.mjs +60 -0
  408. package/examples/exec-pwsh.test.mjs +58 -0
  409. package/examples/findall-coffee-icons.test.mjs +42 -0
  410. package/examples/focus-window.test.mjs +37 -0
  411. package/examples/formatted-logging.test.mjs +27 -0
  412. package/examples/hover-image.test.mjs +53 -0
  413. package/examples/hover-text-with-description.test.mjs +57 -0
  414. package/examples/hover-text.test.mjs +28 -0
  415. package/examples/installer.test.mjs +50 -0
  416. package/examples/launch-vscode-linux.test.mjs +55 -0
  417. package/examples/match-image.test.mjs +55 -0
  418. package/examples/parse.test.mjs +19 -0
  419. package/examples/press-keys.test.mjs +44 -0
  420. package/examples/prompt.test.mjs +34 -0
  421. package/examples/scroll-keyboard.test.mjs +38 -0
  422. package/examples/scroll-until-image.test.mjs +40 -0
  423. package/examples/scroll.test.mjs +42 -0
  424. package/examples/type.test.mjs +46 -0
  425. package/examples/windows-installer.test.mjs +54 -0
  426. package/index.js +2 -0
  427. package/interfaces/cli/commands/init.js +438 -0
  428. package/interfaces/cli/commands/setup.js +382 -0
  429. package/interfaces/cli/lib/base.js +285 -0
  430. package/interfaces/cli.js +20 -0
  431. package/interfaces/junit-reporter.js +290 -0
  432. package/interfaces/logger.js +388 -0
  433. package/interfaces/readline.js +234 -0
  434. package/interfaces/shared-test-state.mjs +64 -0
  435. package/interfaces/vitest-plugin.d.ts +115 -0
  436. package/interfaces/vitest-plugin.mjs +1698 -0
  437. package/lib/captcha/solver.js +358 -0
  438. package/lib/core/Dashcam.js +533 -0
  439. package/lib/core/index.d.ts +172 -0
  440. package/lib/core/index.js +12 -0
  441. package/lib/environments.json +18 -0
  442. package/lib/github-comment-formatter.js +263 -0
  443. package/lib/github-comment.mjs +452 -0
  444. package/lib/init-project.js +575 -0
  445. package/lib/presets/index.mjs +331 -0
  446. package/lib/resolve-channel.js +46 -0
  447. package/lib/sentry.js +417 -0
  448. package/lib/vitest/hooks.d.ts +57 -0
  449. package/lib/vitest/hooks.mjs +674 -0
  450. package/lib/vitest/setup-aws.mjs +247 -0
  451. package/lib/vitest/setup-self-hosted.mjs +151 -0
  452. package/lib/vitest/setup.mjs +46 -0
  453. package/manual/captcha-api.test.mjs +51 -0
  454. package/manual/drag-and-drop.test.mjs +59 -0
  455. package/manual/flake-diffthreshold-001.test.mjs +9 -0
  456. package/manual/flake-diffthreshold-01.test.mjs +9 -0
  457. package/manual/flake-diffthreshold-05.test.mjs +9 -0
  458. package/manual/flake-noredraw-cache.test.mjs +9 -0
  459. package/manual/flake-noredraw-nocache.test.mjs +9 -0
  460. package/manual/flake-redraw-cache.test.mjs +9 -0
  461. package/manual/flake-redraw-nocache.test.mjs +9 -0
  462. package/manual/flake-rocket-match.test.mjs +30 -0
  463. package/manual/flake-shared.mjs +51 -0
  464. package/manual/no-provision.test.mjs +31 -0
  465. package/manual/packer-hover-image.test.mjs +176 -0
  466. package/manual/scroll-until-text.test.mjs +68 -0
  467. package/manual/test-init-command.js +223 -0
  468. package/mcp-server/README.md +322 -0
  469. package/mcp-server/dist/codegen.d.ts +9 -0
  470. package/mcp-server/dist/codegen.js +165 -0
  471. package/mcp-server/dist/mcp-app.html +114 -0
  472. package/mcp-server/dist/package.json +1 -0
  473. package/mcp-server/dist/provision-types.d.ts +290 -0
  474. package/mcp-server/dist/provision-types.js +174 -0
  475. package/mcp-server/dist/server.d.ts +6 -0
  476. package/mcp-server/dist/server.mjs +1925 -0
  477. package/mcp-server/dist/session.d.ts +85 -0
  478. package/mcp-server/dist/session.js +152 -0
  479. package/mcp-server/mcp-app.html +28 -0
  480. package/mcp-server/mcp-config.example.json +19 -0
  481. package/mcp-server/package-lock.json +4027 -0
  482. package/mcp-server/package.json +31 -0
  483. package/mcp-server/src/codegen.ts +189 -0
  484. package/mcp-server/src/mcp-app.css +360 -0
  485. package/mcp-server/src/mcp-app.ts +547 -0
  486. package/mcp-server/src/provision-types.ts +209 -0
  487. package/mcp-server/src/server.ts +2391 -0
  488. package/mcp-server/src/session.ts +194 -0
  489. package/mcp-server/tsconfig.json +16 -0
  490. package/mcp-server/vite.config.ts +23 -0
  491. package/package.json +158 -0
  492. package/schema.json +1046 -0
  493. package/scripts/generate-skills.js +94 -0
  494. package/sdk-log-formatter.js +1157 -0
  495. package/sdk.d.ts +1486 -0
  496. package/sdk.js +4336 -0
  497. package/setup/aws/cloudformation.yaml +463 -0
  498. package/setup/aws/disable-defender.sh +42 -0
  499. package/setup/aws/install-dev-runner.sh +79 -0
  500. package/setup/aws/spawn-runner.sh +289 -0
  501. package/test/captcha-solver.test.mjs +152 -0
  502. package/test/chrome-remote-debugging.test.mjs +66 -0
  503. package/test/duckduckgo/experiment.test.mjs +28 -0
  504. package/test/duckduckgo/setup.test.mjs +29 -0
  505. package/test/manual/debug-locate-response.js +82 -0
  506. package/test/manual/reconnect-provision.test.mjs +49 -0
  507. package/test/manual/test-console-logs.test.mjs +42 -0
  508. package/test/manual/test-find-api.js +73 -0
  509. package/test/manual/test-init.sh +54 -0
  510. package/test/manual/test-prompt-cache.js +97 -0
  511. package/test/manual/test-provision-auth.mjs +22 -0
  512. package/test/manual/test-sandbox-render.js +29 -0
  513. package/test/manual/test-sdk-methods.js +15 -0
  514. package/test/manual/test-sdk-refactor.js +53 -0
  515. package/test/manual/test-stack-trace.mjs +57 -0
  516. package/test/manual/verify-element-api.js +89 -0
  517. package/test/manual/verify-types.js +0 -0
  518. package/test/manual-unawaited-promise.test.mjs +31 -0
  519. package/vitest.config.mjs +58 -0
  520. package/vitest.runner.config.mjs +33 -0
  521. package/vscode-extension/.vscodeignore +12 -0
  522. package/vscode-extension/README.md +94 -0
  523. package/vscode-extension/media/icon.png +0 -0
  524. package/vscode-extension/package-lock.json +4126 -0
  525. package/vscode-extension/package.json +86 -0
  526. package/vscode-extension/src/extension.ts +829 -0
  527. package/vscode-extension/testdriverai-0.1.0.vsix +0 -0
  528. package/vscode-extension/tsconfig.json +16 -0
@@ -0,0 +1,100 @@
1
+ ---
2
+ title: "Netlify"
3
+ sidebarTitle: "Netlify"
4
+ description: "Integrate TestDriver with Netlify deployments using GitHub Actions."
5
+ icon: "cloud"
6
+ ---
7
+
8
+ This guide explains how to integrate **TestDriver** with **Netlify deployments** using the **GitHub Actions workflow**. By combining these tools, you can automatically test your Netlify preview deployments or production builds to ensure they meet your quality standards before merging or releasing.
9
+
10
+ ---
11
+
12
+ ## Workflow overview
13
+
14
+ 1. **Trigger Netlify Deployment**: Use Netlify's GitHub integration to deploy your application on every pull request or push to the main branch.
15
+ 2. **Run Tests on the Deployment URL**: Use the TestDriver GitHub Action to test the deployed application using the Netlify deployment URL.
16
+ 3. **Report Results**: View test results in the GitHub Actions dashboard or as comments on the pull request.
17
+
18
+ ---
19
+
20
+ ## Prerequisites
21
+
22
+ 1. **Netlify GitHub Integration**: Ensure your repository is connected to Netlify for automatic deployments.
23
+ 2. **TestDriver API Key**: Store your API key as a GitHub secret (for example, `TD_API_KEY`).
24
+ 3. **Netlify Deployment URL**: Use the `DEPLOY_URL` environment variable provided by Netlify to access the deployment.
25
+
26
+ ---
27
+
28
+ ## CI/CD workflow
29
+
30
+ Here's a complete workflow to test Netlify deployments with TestDriver CLI (adapt for your CI/CD platform):
31
+
32
+ ```yaml .github/workflows/testdriver-netlify.yaml
33
+ name: Test Netlify Deployment with TestDriver
34
+
35
+ on:
36
+ pull_request:
37
+ push:
38
+ branches:
39
+ - main
40
+ workflow_dispatch:
41
+
42
+ jobs:
43
+ test-netlify:
44
+ name: Test Netlify Deployment
45
+ runs-on: ubuntu-latest
46
+ steps:
47
+ - name: Check out repository
48
+ uses: actions/checkout@v4
49
+
50
+ - name: Wait for Netlify Deployment
51
+ id: netlify
52
+ run: |
53
+ echo "Waiting for Netlify deployment..."
54
+ echo "Deployment URL: $DEPLOY_URL"
55
+ if [ -z "$DEPLOY_URL" ]; then
56
+ echo "Netlify deployment URL not found. Exiting."
57
+ exit 1
58
+ fi
59
+
60
+ - name: Run Tests with TestDriver CLI
61
+ run: |
62
+ npx testdriverai@latest run testdriver/test.yaml
63
+ env:
64
+ TD_API_KEY: ${{ secrets.TD_API_KEY }}
65
+ DEPLOY_URL: ${{ env.DEPLOY_URL }}
66
+ ```
67
+
68
+ ---
69
+
70
+ ## Workflow steps explained
71
+
72
+ ### 1. **Wait for Netlify deployment**
73
+
74
+ Netlify automatically sets the `DEPLOY_URL` environment variable for each deployment. This step ensures the deployment URL is available before running tests.
75
+
76
+ ```yaml .github/workflows/testdriver-netlify.yaml
77
+ - name: Wait for Netlify Deployment
78
+ id: netlify
79
+ run: |
80
+ echo "Waiting for Netlify deployment..."
81
+ echo "Deployment URL: $DEPLOY_URL"
82
+ if [ -z "$DEPLOY_URL" ]; then
83
+ echo "Netlify deployment URL not found. Exiting."
84
+ exit 1
85
+ fi
86
+ ```
87
+
88
+ ---
89
+
90
+ ### 2. **Run tests with TestDriver CLI**
91
+
92
+ The TestDriver CLI runs tests on the deployed application using the deployment URL.
93
+
94
+ ```yaml .github/workflows/testdriver-netlify.yaml
95
+ - name: Run Tests with TestDriver CLI
96
+ run: npx testdriverai@latest run testdriver/test.yaml
97
+ env:
98
+ TD_API_KEY: ${{ secrets.TD_API_KEY }}
99
+ DEPLOY_URL: ${{ env.DEPLOY_URL }}
100
+ ```
@@ -0,0 +1,125 @@
1
+ ---
2
+ title: "Vercel"
3
+ sidebarTitle: "Vercel"
4
+ description: "Integrate TestDriver with Vercel deployments using GitHub Actions."
5
+ icon: "triangle"
6
+ ---
7
+
8
+ This guide explains how to integrate **TestDriver** with **Vercel deployments** using the **GitHub Actions workflow**. By combining these tools, you can automatically test your Vercel preview deployments or production builds to ensure they meet your quality standards before merging or releasing.
9
+
10
+ ---
11
+
12
+ ## Workflow overview
13
+
14
+ 1. **Trigger Vercel Deployment**: Use Vercel's GitHub integration to deploy your application on every pull request or push to the main branch.
15
+ 2. **Run Tests on the Deployment URL**: Use the TestDriver GitHub Action to test the deployed application using the Vercel deployment URL.
16
+ 3. **Report Results**: View test results in the GitHub Actions dashboard or as comments on the pull request.
17
+
18
+ ---
19
+
20
+ ## Prerequisites
21
+
22
+ 1. **Vercel GitHub Integration**: Ensure your repository is connected to Vercel for automatic deployments.
23
+ 2. **TestDriver API Key**: Store your API key as a GitHub secret (for example, `TD_API_KEY`).
24
+ 3. **Vercel Deployment URL**: Use the `VERCEL_URL` environment variable provided by Vercel to access the deployment.
25
+
26
+ ---
27
+
28
+ ## CI/CD workflow
29
+
30
+ Here's a complete workflow to test Vercel deployments with TestDriver CLI (adapt for your CI/CD platform):
31
+
32
+ ```yaml .github/workflows/testdriver-vercel.yaml
33
+ name: Test Vercel Deployment with TestDriver
34
+
35
+ on:
36
+ pull_request:
37
+ push:
38
+ branches:
39
+ - main
40
+ workflow_dispatch:
41
+
42
+ jobs:
43
+ test-vercel:
44
+ name: Test Vercel Deployment
45
+ runs-on: ubuntu-latest
46
+ steps:
47
+ - name: Check out repository
48
+ uses: actions/checkout@v4
49
+
50
+ - name: Wait for Vercel Deployment
51
+ id: vercel
52
+ uses: amondnet/vercel-action@v20
53
+ with:
54
+ vercel-token: ${{ secrets.VERCEL_TOKEN }}
55
+ github-token: ${{ secrets.GITHUB_TOKEN }}
56
+ vercel-args: "--prod" # Optional: Use '--prod' for production builds
57
+ env:
58
+ VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }}
59
+ VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }}
60
+
61
+ - name: Run Tests with TestDriver CLI
62
+ run: npx testdriverai@latest run testdriver/test.yaml
63
+ env:
64
+ TD_API_KEY: ${{ secrets.TD_API_KEY }}
65
+ DEPLOYMENT_URL: ${{ steps.vercel.outputs.url }}
66
+ ```
67
+
68
+ ---
69
+
70
+ ## Workflow steps explained
71
+
72
+ ### 1. **Wait for Vercel deployment**
73
+
74
+ The `amondnet/vercel-action` waits for the Vercel deployment to complete and retrieves the deployment URL. This URL is stored in the `steps.vercel.outputs.url` variable.
75
+
76
+ ```yaml .github/workflows/testdriver-vercel.yaml
77
+ - name: Wait for Vercel Deployment
78
+ id: vercel
79
+ uses: amondnet/vercel-action@v20
80
+ with:
81
+ vercel-token: ${{ secrets.VERCEL_TOKEN }}
82
+ github-token: ${{ secrets.GITHUB_TOKEN }}
83
+ vercel-args: "--prod"
84
+ env:
85
+ VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }}
86
+ VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }}
87
+ ```
88
+
89
+ ---
90
+
91
+ ### 2. **Run tests with TestDriver CLI**
92
+
93
+ The TestDriver CLI runs tests on the deployed application using the deployment URL.
94
+
95
+ ```yaml .github/workflows/testdriver-vercel.yaml
96
+ - name: Run Tests with TestDriver CLI
97
+ run: npx testdriverai@latest run testdriver/test.yaml
98
+ env:
99
+ TD_API_KEY: ${{ secrets.TD_API_KEY }}
100
+ DEPLOYMENT_URL: ${{ steps.vercel.outputs.url }}
101
+ ```
102
+
103
+ ---
104
+
105
+ ## Secrets configuration
106
+
107
+ Add the following secrets to your GitHub repository:
108
+
109
+ 1. **`TD_API_KEY`**: Your TestDriver API key.
110
+ 2. **`VERCEL_TOKEN`**: Your Vercel API token.
111
+ 3. **`VERCEL_ORG_ID`**: Your Vercel organization ID.
112
+ 4. **`VERCEL_PROJECT_ID`**: Your Vercel project ID.
113
+
114
+ ---
115
+
116
+ ## Benefits of this workflow
117
+
118
+ 1. **Automated Deployment Testing**: Automatically test every Vercel deployment, including preview and production builds.
119
+ 2. **Early Issue Detection**: Catch issues in pull requests before merging.
120
+ 3. **Detailed Feedback**: View test results directly in the GitHub Actions dashboard.
121
+ 4. **Seamless Integration**: Combine Vercel's deployment capabilities with TestDriver's testing power.
122
+
123
+ ---
124
+
125
+ By integrating TestDriver with Vercel deployments, you can ensure that every deployment is thoroughly tested, reducing the risk of bugs reaching production and improving the overall quality of your application.
@@ -0,0 +1,99 @@
1
+ ---
2
+ title: "/explore"
3
+ sidebarTitle: "/explore"
4
+ description: "Create and execute a test file"
5
+ icon: "play-pause"
6
+ ---
7
+
8
+ ## Description
9
+
10
+ The `/explore` command is used to execute a single step in a test file and add it to a specified file. This command generates and performs steps in an interactive way while creating a test file.
11
+
12
+ <Check>
13
+ `/explore` is the default command sent to TestDriver when no command is
14
+ provided.
15
+ </Check>
16
+
17
+ ## Usage
18
+
19
+ ```bash
20
+ testdriverai edit <filename.yaml>
21
+ /explore prompt
22
+ ```
23
+
24
+ ## Example usage
25
+
26
+ ```bash
27
+ > /explore add an item to the shopping cart
28
+ ```
29
+
30
+ This command creates the command step(s) necessary to add an item to the shopping cart in the specified test file, executing the generated command(s) after writing them into the test file. If there are intermediate steps to be taken, they're added to the test file as well.
31
+
32
+ ```bash
33
+ thinking...
34
+
35
+ To add an item to the shopping cart, we need to identify
36
+ the "Add to Cart" button from the screenshot. However,
37
+ since the screenshot shows a code editor, we need to
38
+ assume the button isn't visible here. Let's proceed with
39
+ a generic approach:
40
+
41
+ commands:
42
+ - command: focus-application
43
+ name: Google Chrome
44
+ - command: hover-text
45
+ text: Add to Cart
46
+ description: add to cart button on the shopping page
47
+ action: click
48
+
49
+ ### Explanation:
50
+
51
+ 1. Focus Google Chrome: Ensure the browser is active to interact with the shopping page.
52
+ 2. Click 'Add to Cart': Use hover-text to find and click the "Add to Cart" button, assuming it's present on the shopping page.
53
+
54
+ command='focus-application' name='Google Chrome'
55
+ command='hover-text' text='Add to Cart' description='add to cart button on the shopping page' action='click'
56
+
57
+ thinking...
58
+ ```
59
+
60
+ **In this case, the user wasn't logged in, so the AI will 'undo' the steps it thought it should take, and add steps to log in first.**
61
+
62
+ ```bash
63
+ undoing...
64
+ thinking...
65
+
66
+ The screenshot shows a "Sign In" button on the webpage.
67
+ Let's try clicking that instead, as it might be necessary
68
+ before adding items to the cart.
69
+
70
+ commands:
71
+ - command: hover-text
72
+ text: Sign In
73
+ description: sign in button on the webpage
74
+ action: click
75
+
76
+ command='hover-text' text='Sign In' description='sign in button on the webpage' action='click'
77
+
78
+ thinking...
79
+ ```
80
+
81
+ ## Behavior
82
+
83
+ - TestDriver will generate an idea to complete the task, try to execute it, and add the steps to the test file.
84
+ - The steps will be executed in the order generated.
85
+ - If the steps are successful, they're added to the test file.
86
+ - If the steps fail, TestDriver will attempt to fall back to AI, undo the last step and provide an explanation of what went wrong. The AI will retry the step with new commands.
87
+ - If the commands are successful, the program will output the results and exit with code `0`.
88
+ - If any failures occur during the test, the program will output the errors and exit with code `1`.
89
+
90
+ ## Protips
91
+
92
+ - Use descriptive prompts for higher success with generating test steps with `/explore`.
93
+ - Use `/explore` multiple times in succession to build a comprehensive test file.
94
+
95
+ <Note>The AI will retry 3 times if it can't complete the task.</Note>
96
+
97
+ ---
98
+
99
+ The `/explore` command is ideal for creating test files in an interactive session.
@@ -0,0 +1,52 @@
1
+ ---
2
+ title: "/run"
3
+ sidebarTitle: "/run"
4
+ description: "Run a test file from a file."
5
+ icon: "play"
6
+ ---
7
+
8
+ ## Description
9
+
10
+ The `/run` command is used to execute a test file from a specified file. This command performs each step defined in the test file and outputs the results.
11
+
12
+ ## Usage
13
+
14
+ ```bash
15
+ npx testdriverai@latest edit <filename.yaml>
16
+ /run [other-filename.yaml] # if no path is present it will run the `filename.yaml`
17
+ ```
18
+
19
+ ## Example usage
20
+
21
+ ```bash
22
+ testdriverai edit
23
+ > /run helloworld.yaml
24
+ ```
25
+
26
+ This command runs the `helloworld.yaml` test file, executing each command in the file sequentially.
27
+
28
+ <Warning>
29
+ The `helloworld.yaml` file needs to be present in the present directory. If
30
+ its present outside, need to specify the relative path like
31
+ `../snippets/helloworld.yaml`
32
+ </Warning>
33
+
34
+ ## Behavior
35
+
36
+ - TestDriver will execute the test file, performing each command as defined in the file.
37
+ - If the test completes successfully, the program will exit with code `0`.
38
+ - If any failures occur during the test, the program will output the errors and exit with code `1`.
39
+
40
+ ## Protips
41
+
42
+ - Ensure the test file path is correct and accessible before running the command.
43
+ - Use descriptive filenames for your test files to make them easier to identify.
44
+
45
+ ## Gotchas
46
+
47
+ - Any errors in the test file (for example, invalid commands or missing arguments) will cause the test to fail.
48
+
49
+ ## Notes
50
+
51
+ - The `/run` command is ideal for executing pre-created test files in an interactive session.
52
+ - Use this command to validate and debug your test files during development.
@@ -0,0 +1,63 @@
1
+ ---
2
+ title: "/save"
3
+ sidebarTitle: "/save"
4
+ description: "Save the current test script to a file."
5
+ icon: "floppy-disk"
6
+ ---
7
+
8
+ ## Description
9
+
10
+ The `/save` command saves the current state of the test script to a file. This command generates a YAML file containing the history of executed commands and tasks, allowing you to reuse or modify the test script later.
11
+
12
+ ## Usage
13
+
14
+ ```bash
15
+ /save
16
+ ```
17
+
18
+ ## Example usage
19
+
20
+ ```bash
21
+ testdriverai edit
22
+ > /save
23
+
24
+ saving...
25
+
26
+ Current test script:
27
+
28
+ version: 6.0.0
29
+ steps:
30
+ - prompt: navigate to fiber.google.com
31
+ commands:
32
+ - command: focus-application
33
+ name: Google Chrome
34
+ - command: hover-text
35
+ text: Search Google or type a URL
36
+ description: main google search
37
+ action: click
38
+ - command: type
39
+ text: fiber.google.com
40
+ - command: press-keys
41
+ keys:
42
+ - enter
43
+ ```
44
+
45
+ ## Behavior
46
+
47
+ - The `/save` command generates a YAML file with the current test script, including all executed steps and commands.
48
+ - The file can be used as a reusable test file for future executions.
49
+
50
+ ## Protips
51
+
52
+ - Use `/save` frequently during interactive sessions to preserve your progress and avoid losing work.
53
+ - Combine `/save` with `/run` to quickly test and iterate on your scripts.
54
+
55
+ ## Gotchas
56
+
57
+ - Ensure you have write permissions in the directory where the file will be saved.
58
+ - The saved script reflects the current state of the session. Any unexecuted commands won't be included.
59
+
60
+ ## Notes
61
+
62
+ - The `/save` command is ideal for creating reusable test scripts from interactive sessions.
63
+ - Use this command to document and share your test workflows with your team.
@@ -0,0 +1,101 @@
1
+ ---
2
+ title: Comparison
3
+ sidebarTitle: "Comparison"
4
+ description: "TestDriver vs Playwright vs Selenium"
5
+ icon: boxing-glove
6
+ ---
7
+
8
+ ## Application support
9
+
10
+ TestDriver operates a full desktop environment, so it can run any application.
11
+
12
+ <div className="comparison-table">
13
+ | Application | TestDriver | Playwright | Selenium |
14
+ |:-----------------:|:---------:|:-----------:|:--------:|
15
+ | Web Apps | ✅ | ✅ | ✅ |
16
+ | Mobile Apps | ✅ | ✅ | ✅ |
17
+ | VS Code Plugins | ✅ | | |
18
+ | Desktop Apps | ✅ | | |
19
+ | Chrome Extensions | ✅ | | |
20
+ </div>
21
+
22
+ ## Testing features
23
+
24
+ TestDriver is AI first.
25
+
26
+ <div className="comparison-table">
27
+ | Feature | TestDriver | Playwright | Selenium |
28
+ |:--------------------:|:----------:|:----------:|:--------:|
29
+ | Test Generation | ✅ | | |
30
+ | Adaptive Testing | ✅ | | |
31
+ | Visual Assertions | ✅ | | |
32
+ | Self Healing | ✅ | | |
33
+ | Application Switching| ✅ | | |
34
+ | GitHub Actions | ✅ | ✅ | |
35
+ | Team Dashboard | ✅ | | |
36
+ | Team Collaboration | ✅ | | |
37
+ </div>
38
+
39
+ ## Test coverage
40
+
41
+ TestDriver has more coverage than selector-based frameworks.
42
+
43
+ <div className="comparison-table">
44
+ | Feature | TestDriver | Playwright | Selenium |
45
+ |:------------------:|:----------:|:----------:|:--------:|
46
+ | Browser Viewport | ✅ | ✅ | ✅ |
47
+ | Browser App | ✅ | | |
48
+ | Operating System | ✅ | | |
49
+ | PDFs | ✅ | | |
50
+ | File System | ✅ | | |
51
+ | Push Notifications | ✅ | | |
52
+ | Image Content | ✅ | | |
53
+ | Video Content | ✅ | | |
54
+ | `<iframe>` | ✅ | | |
55
+ | `<canvas>` | ✅ | | |
56
+ | `<video>` | ✅ | | |
57
+ </div>
58
+
59
+ ## Debugging features
60
+
61
+ Debugging features are powered by [Dashcam.io](https://dashcam.io).
62
+
63
+ <div className="comparison-table">
64
+ | Feature | TestDriver | Playwright | Selenium |
65
+ |:--------------------:|:----------:|:----------:|:--------:|
66
+ | AI Summary | ✅ | | |
67
+ | Video Replay | ✅ | ✅ | |
68
+ | Browser Logs | ✅ | ✅ | |
69
+ | Desktop Logs | ✅ | | |
70
+ | Network Requests | ✅ | ✅ | |
71
+ | Team Dashboard | ✅ | | |
72
+ | Team Collaboration | ✅ | | |
73
+ </div>
74
+
75
+ ## Web browser support
76
+
77
+ TestDriver is browser agnostic and supports any version of any browser.
78
+
79
+ <div className="comparison-table">
80
+ | Feature | TestDriver | Playwright | Selenium |
81
+ |:--------:|:----------:|:----------:|:--------:|
82
+ | Chrome | ✅ | ✅ | ✅ |
83
+ | Firefox | ✅ | ✅ | ✅ |
84
+ | Webkit | ✅ | ✅ | ✅ |
85
+ | IE | ✅ | | ✅ |
86
+ | Edge | ✅ | ✅ | ✅ |
87
+ | Opera | ✅ | | ✅ |
88
+ | Safari | ✅ | | ✅ |
89
+ </div>
90
+
91
+ ## Operating system support
92
+
93
+ TestDriver currently supports all the three major operating systems!
94
+
95
+ <div className="comparison-table">
96
+ | Feature | TestDriver | Playwright | Selenium |
97
+ |:--------:|:----------:|:----------:|:--------:|
98
+ | Windows | ✅ | ✅ | ✅ |
99
+ | Mac | ✅ | ✅ | ✅ |
100
+ | Linux | ✅ | ✅ | ✅ |
101
+ </div>