testdriverai 7.0.0 → 7.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +2 -0
- package/.github/workflows/linux-tests.yml +28 -0
- package/README.md +126 -0
- package/agent/index.js +7 -9
- package/agent/interface.js +13 -2
- package/agent/lib/commands.js +795 -136
- package/agent/lib/redraw.js +124 -39
- package/agent/lib/sandbox.js +40 -3
- package/agent/lib/sdk.js +21 -0
- package/agent/lib/valid-version.js +2 -2
- package/debugger/index.html +1 -1
- package/docs/docs.json +86 -71
- package/docs/guide/best-practices-polling.mdx +154 -0
- package/docs/v6/getting-started/self-hosting.mdx +3 -2
- package/docs/v7/_drafts/agents.mdx +852 -0
- package/docs/v7/_drafts/auto-cache-key.mdx +167 -0
- package/docs/v7/_drafts/best-practices.mdx +486 -0
- package/docs/v7/_drafts/caching-ai.mdx +215 -0
- package/docs/v7/_drafts/caching-selectors.mdx +400 -0
- package/docs/v7/_drafts/caching.mdx +366 -0
- package/docs/v7/_drafts/cli-to-sdk-migration.mdx +425 -0
- package/docs/v7/_drafts/core.mdx +459 -0
- package/docs/v7/_drafts/dashcam-title-feature.mdx +89 -0
- package/docs/v7/_drafts/debugging.mdx +349 -0
- package/docs/v7/_drafts/error-handling.mdx +501 -0
- package/docs/v7/_drafts/faq.mdx +393 -0
- package/docs/v7/_drafts/hooks.mdx +360 -0
- package/docs/v7/_drafts/implementation-plan.mdx +994 -0
- package/docs/v7/_drafts/init-command.mdx +95 -0
- package/docs/v7/_drafts/optimal-sdk-design.mdx +1348 -0
- package/docs/v7/_drafts/performance.mdx +517 -0
- package/docs/v7/_drafts/presets.mdx +210 -0
- package/docs/v7/_drafts/progressive-disclosure.mdx +230 -0
- package/docs/v7/_drafts/provision.mdx +266 -0
- package/docs/{QUICK_START_TEST_RECORDING.md → v7/_drafts/quick-start-test-recording.mdx} +3 -3
- package/docs/v7/_drafts/sdk-v7-complete.mdx +345 -0
- package/docs/v7/{guides → _drafts}/self-hosting.mdx +1 -1
- package/docs/v7/_drafts/troubleshooting.mdx +526 -0
- package/docs/v7/_drafts/vitest-plugin.mdx +477 -0
- package/docs/v7/_drafts/vitest.mdx +535 -0
- package/docs/v7/api/{ai.mdx → act.mdx} +24 -24
- package/docs/v7/api/client.mdx +1 -1
- package/docs/v7/api/dashcam.mdx +497 -0
- package/docs/v7/api/doubleClick.mdx +102 -0
- package/docs/v7/api/elements.mdx +143 -41
- package/docs/v7/api/find.mdx +258 -0
- package/docs/v7/api/mouseDown.mdx +161 -0
- package/docs/v7/api/mouseUp.mdx +164 -0
- package/docs/v7/api/rightClick.mdx +123 -0
- package/docs/v7/api/type.mdx +51 -7
- package/docs/v7/features/ai-native.mdx +427 -0
- package/docs/v7/features/easy-to-write.mdx +351 -0
- package/docs/v7/features/enterprise.mdx +540 -0
- package/docs/v7/features/fast.mdx +424 -0
- package/docs/v7/features/observable.mdx +623 -0
- package/docs/v7/features/powerful.mdx +531 -0
- package/docs/v7/features/scalable.mdx +417 -0
- package/docs/v7/features/stable.mdx +514 -0
- package/docs/v7/getting-started/configuration.mdx +380 -0
- package/docs/v7/getting-started/generating-tests.mdx +525 -0
- package/docs/v7/getting-started/installation.mdx +486 -0
- package/docs/v7/getting-started/quickstart.mdx +320 -141
- package/docs/v7/getting-started/running-and-debugging.mdx +511 -0
- package/docs/v7/getting-started/setting-up-in-ci.mdx +612 -0
- package/docs/v7/getting-started/writing-tests.mdx +535 -0
- package/docs/v7/overview/what-is-testdriver.mdx +398 -0
- package/docs/v7/platforms/linux.mdx +308 -0
- package/docs/v7/platforms/macos.mdx +433 -0
- package/docs/v7/platforms/windows.mdx +430 -0
- package/docs/v7/playwright.mdx +3 -3
- package/docs/v7/presets/chrome-extension.mdx +223 -0
- package/docs/v7/presets/chrome.mdx +303 -0
- package/docs/v7/presets/electron.mdx +453 -0
- package/docs/v7/presets/vscode.mdx +417 -0
- package/docs/v7/presets/webapp.mdx +396 -0
- package/examples/run-tests-with-recording.sh +2 -2
- package/interfaces/cli/commands/init.js +358 -0
- package/interfaces/vitest-plugin.mjs +393 -103
- package/lib/core/Dashcam.js +506 -0
- package/lib/core/index.d.ts +150 -0
- package/lib/core/index.js +12 -0
- package/lib/presets/index.mjs +331 -0
- package/lib/vitest/hooks.d.ts +119 -0
- package/lib/vitest/hooks.mjs +316 -0
- package/lib/vitest/setup.mjs +44 -0
- package/package.json +13 -3
- package/sdk.d.ts +350 -44
- package/sdk.js +818 -105
- package/{self-hosted.yml → setup/aws/self-hosted.yml} +1 -1
- package/test/manual/test-console-logs.test.mjs +42 -0
- package/test/manual/test-init.sh +54 -0
- package/test/manual/test-provision-auth.mjs +22 -0
- package/test/testdriver/assert.test.mjs +41 -0
- package/test/testdriver/auto-cache-key-demo.test.mjs +56 -0
- package/test/testdriver/chrome-extension.test.mjs +89 -0
- package/{testdriver/acceptance-sdk → test/testdriver}/drag-and-drop.test.mjs +7 -19
- package/{testdriver/acceptance-sdk → test/testdriver}/element-not-found.test.mjs +6 -19
- package/{testdriver/acceptance-sdk → test/testdriver}/exec-js.test.mjs +6 -18
- package/{testdriver/acceptance-sdk → test/testdriver}/exec-output.test.mjs +9 -21
- package/{testdriver/acceptance-sdk → test/testdriver}/exec-pwsh.test.mjs +14 -26
- package/{testdriver/acceptance-sdk → test/testdriver}/focus-window.test.mjs +8 -20
- package/{testdriver/acceptance-sdk → test/testdriver}/formatted-logging.test.mjs +5 -20
- package/{testdriver/acceptance-sdk → test/testdriver}/hover-image.test.mjs +10 -19
- package/{testdriver/acceptance-sdk → test/testdriver}/hover-text-with-description.test.mjs +7 -19
- package/{testdriver/acceptance-sdk → test/testdriver}/hover-text.test.mjs +5 -19
- package/{testdriver/acceptance-sdk → test/testdriver}/match-image.test.mjs +7 -19
- package/{testdriver/acceptance-sdk → test/testdriver}/press-keys.test.mjs +5 -19
- package/{testdriver/acceptance-sdk → test/testdriver}/prompt.test.mjs +7 -19
- package/{testdriver/acceptance-sdk → test/testdriver}/scroll-keyboard.test.mjs +6 -20
- package/{testdriver/acceptance-sdk → test/testdriver}/scroll-until-image.test.mjs +6 -18
- package/test/testdriver/scroll-until-text.test.mjs +28 -0
- package/{testdriver/acceptance-sdk → test/testdriver}/scroll.test.mjs +12 -21
- package/test/testdriver/setup/lifecycleHelpers.mjs +262 -0
- package/{testdriver/acceptance-sdk → test/testdriver}/setup/testHelpers.mjs +25 -20
- package/test/testdriver/type.test.mjs +45 -0
- package/vitest.config.mjs +11 -56
- package/.github/dependabot.yml +0 -11
- package/.github/workflows/acceptance-linux.yml +0 -75
- package/.github/workflows/acceptance-sdk-tests.yml +0 -133
- package/.github/workflows/acceptance-tests.yml +0 -130
- package/.github/workflows/lint.yml +0 -27
- package/.github/workflows/publish-canary.yml +0 -40
- package/.github/workflows/publish-latest.yml +0 -61
- package/.github/workflows/test-install.yml +0 -29
- package/.vscode/extensions.json +0 -3
- package/.vscode/launch.json +0 -22
- package/.vscode/mcp.json +0 -9
- package/.vscode/settings.json +0 -14
- package/CODEOWNERS +0 -3
- package/MIGRATION.md +0 -389
- package/SDK_README.md +0 -1122
- package/_testdriver/acceptance/assert.yaml +0 -7
- package/_testdriver/acceptance/dashcam.yaml +0 -9
- package/_testdriver/acceptance/drag-and-drop.yaml +0 -49
- package/_testdriver/acceptance/embed.yaml +0 -9
- package/_testdriver/acceptance/exec-js.yaml +0 -29
- package/_testdriver/acceptance/exec-output.yaml +0 -43
- package/_testdriver/acceptance/exec-shell.yaml +0 -40
- package/_testdriver/acceptance/focus-window.yaml +0 -16
- package/_testdriver/acceptance/hover-image.yaml +0 -18
- package/_testdriver/acceptance/hover-text-with-description.yaml +0 -29
- package/_testdriver/acceptance/hover-text.yaml +0 -14
- package/_testdriver/acceptance/if-else.yaml +0 -31
- package/_testdriver/acceptance/match-image.yaml +0 -15
- package/_testdriver/acceptance/press-keys.yaml +0 -35
- package/_testdriver/acceptance/prompt.yaml +0 -11
- package/_testdriver/acceptance/remember.yaml +0 -27
- package/_testdriver/acceptance/screenshots/cart.png +0 -0
- package/_testdriver/acceptance/scroll-keyboard.yaml +0 -34
- package/_testdriver/acceptance/scroll-until-image.yaml +0 -26
- package/_testdriver/acceptance/scroll-until-text.yaml +0 -20
- package/_testdriver/acceptance/scroll.yaml +0 -33
- package/_testdriver/acceptance/snippets/login.yaml +0 -29
- package/_testdriver/acceptance/snippets/match-cart.yaml +0 -8
- package/_testdriver/acceptance/type.yaml +0 -29
- package/_testdriver/behavior/failure.yaml +0 -7
- package/_testdriver/behavior/hover-text.yaml +0 -13
- package/_testdriver/behavior/lifecycle/postrun.yaml +0 -10
- package/_testdriver/behavior/lifecycle/prerun.yaml +0 -8
- package/_testdriver/behavior/lifecycle/provision.yaml +0 -8
- package/_testdriver/behavior/secrets.yaml +0 -7
- package/_testdriver/edge-cases/dashcam-chrome.yaml +0 -8
- package/_testdriver/edge-cases/exec-pwsh-multiline.yaml +0 -10
- package/_testdriver/edge-cases/js-exception.yaml +0 -8
- package/_testdriver/edge-cases/js-promise.yaml +0 -19
- package/_testdriver/edge-cases/lifecycle/postrun.yaml +0 -10
- package/_testdriver/edge-cases/prompt-in-middle.yaml +0 -23
- package/_testdriver/edge-cases/prompt-nested.yaml +0 -7
- package/_testdriver/edge-cases/success-test.yaml +0 -9
- package/_testdriver/examples/android/example.yaml +0 -12
- package/_testdriver/examples/android/lifecycle/postrun.yaml +0 -11
- package/_testdriver/examples/android/lifecycle/provision.yaml +0 -47
- package/_testdriver/examples/android/readme.md +0 -7
- package/_testdriver/examples/chrome-extension/lifecycle/provision.yaml +0 -74
- package/_testdriver/examples/desktop/lifecycle/prerun.yaml +0 -0
- package/_testdriver/examples/desktop/lifecycle/provision.yaml +0 -64
- package/_testdriver/examples/vscode-extension/lifecycle/provision.yaml +0 -73
- package/_testdriver/examples/web/lifecycle/postrun.yaml +0 -7
- package/_testdriver/examples/web/lifecycle/prerun.yaml +0 -22
- package/_testdriver/lifecycle/postrun.yaml +0 -8
- package/_testdriver/lifecycle/prerun.yaml +0 -15
- package/_testdriver/lifecycle/provision.yaml +0 -25
- package/debug-screenshot-1763401388589.png +0 -0
- package/mcp-server/AI_GUIDELINES.md +0 -57
- package/scripts/view-test-results.mjs +0 -96
- package/styles/.vale-config/2-MDX.ini +0 -5
- package/styles/Microsoft/AMPM.yml +0 -9
- package/styles/Microsoft/Accessibility.yml +0 -30
- package/styles/Microsoft/Acronyms.yml +0 -64
- package/styles/Microsoft/Adverbs.yml +0 -272
- package/styles/Microsoft/Auto.yml +0 -11
- package/styles/Microsoft/Avoid.yml +0 -14
- package/styles/Microsoft/Contractions.yml +0 -50
- package/styles/Microsoft/Dashes.yml +0 -13
- package/styles/Microsoft/DateFormat.yml +0 -8
- package/styles/Microsoft/DateNumbers.yml +0 -40
- package/styles/Microsoft/DateOrder.yml +0 -8
- package/styles/Microsoft/Ellipses.yml +0 -9
- package/styles/Microsoft/FirstPerson.yml +0 -16
- package/styles/Microsoft/Foreign.yml +0 -13
- package/styles/Microsoft/Gender.yml +0 -8
- package/styles/Microsoft/GenderBias.yml +0 -42
- package/styles/Microsoft/GeneralURL.yml +0 -11
- package/styles/Microsoft/HeadingAcronyms.yml +0 -7
- package/styles/Microsoft/HeadingColons.yml +0 -8
- package/styles/Microsoft/HeadingPunctuation.yml +0 -13
- package/styles/Microsoft/Headings.yml +0 -28
- package/styles/Microsoft/Hyphens.yml +0 -14
- package/styles/Microsoft/Negative.yml +0 -13
- package/styles/Microsoft/Ordinal.yml +0 -13
- package/styles/Microsoft/OxfordComma.yml +0 -8
- package/styles/Microsoft/Passive.yml +0 -183
- package/styles/Microsoft/Percentages.yml +0 -7
- package/styles/Microsoft/Plurals.yml +0 -7
- package/styles/Microsoft/Quotes.yml +0 -7
- package/styles/Microsoft/RangeTime.yml +0 -13
- package/styles/Microsoft/Semicolon.yml +0 -8
- package/styles/Microsoft/SentenceLength.yml +0 -6
- package/styles/Microsoft/Spacing.yml +0 -8
- package/styles/Microsoft/Suspended.yml +0 -7
- package/styles/Microsoft/Terms.yml +0 -42
- package/styles/Microsoft/URLFormat.yml +0 -9
- package/styles/Microsoft/Units.yml +0 -16
- package/styles/Microsoft/Vocab.yml +0 -25
- package/styles/Microsoft/We.yml +0 -11
- package/styles/Microsoft/Wordiness.yml +0 -127
- package/styles/Microsoft/meta.json +0 -4
- package/styles/alex/Ablist.yml +0 -274
- package/styles/alex/Condescending.yml +0 -16
- package/styles/alex/Gendered.yml +0 -110
- package/styles/alex/LGBTQ.yml +0 -55
- package/styles/alex/OCD.yml +0 -10
- package/styles/alex/Press.yml +0 -12
- package/styles/alex/ProfanityLikely.yml +0 -1289
- package/styles/alex/ProfanityMaybe.yml +0 -282
- package/styles/alex/ProfanityUnlikely.yml +0 -251
- package/styles/alex/README.md +0 -27
- package/styles/alex/Race.yml +0 -85
- package/styles/alex/Suicide.yml +0 -26
- package/styles/alex/meta.json +0 -4
- package/styles/config/vocabularies/Docs/accept.txt +0 -47
- package/styles/config/vocabularies/Docs/reject.txt +0 -4
- package/styles/proselint/Airlinese.yml +0 -8
- package/styles/proselint/AnimalLabels.yml +0 -48
- package/styles/proselint/Annotations.yml +0 -9
- package/styles/proselint/Apologizing.yml +0 -8
- package/styles/proselint/Archaisms.yml +0 -52
- package/styles/proselint/But.yml +0 -8
- package/styles/proselint/Cliches.yml +0 -782
- package/styles/proselint/CorporateSpeak.yml +0 -30
- package/styles/proselint/Currency.yml +0 -5
- package/styles/proselint/Cursing.yml +0 -15
- package/styles/proselint/DateCase.yml +0 -7
- package/styles/proselint/DateMidnight.yml +0 -7
- package/styles/proselint/DateRedundancy.yml +0 -10
- package/styles/proselint/DateSpacing.yml +0 -7
- package/styles/proselint/DenizenLabels.yml +0 -52
- package/styles/proselint/Diacritical.yml +0 -95
- package/styles/proselint/GenderBias.yml +0 -45
- package/styles/proselint/GroupTerms.yml +0 -39
- package/styles/proselint/Hedging.yml +0 -8
- package/styles/proselint/Hyperbole.yml +0 -6
- package/styles/proselint/Jargon.yml +0 -11
- package/styles/proselint/LGBTOffensive.yml +0 -13
- package/styles/proselint/LGBTTerms.yml +0 -15
- package/styles/proselint/Malapropisms.yml +0 -8
- package/styles/proselint/Needless.yml +0 -358
- package/styles/proselint/Nonwords.yml +0 -38
- package/styles/proselint/Oxymorons.yml +0 -22
- package/styles/proselint/P-Value.yml +0 -6
- package/styles/proselint/RASSyndrome.yml +0 -30
- package/styles/proselint/README.md +0 -12
- package/styles/proselint/Skunked.yml +0 -13
- package/styles/proselint/Spelling.yml +0 -17
- package/styles/proselint/Typography.yml +0 -11
- package/styles/proselint/Uncomparables.yml +0 -50
- package/styles/proselint/Very.yml +0 -6
- package/styles/proselint/meta.json +0 -15
- package/styles/write-good/Cliches.yml +0 -702
- package/styles/write-good/E-Prime.yml +0 -32
- package/styles/write-good/Illusions.yml +0 -11
- package/styles/write-good/Passive.yml +0 -183
- package/styles/write-good/README.md +0 -27
- package/styles/write-good/So.yml +0 -5
- package/styles/write-good/ThereIs.yml +0 -6
- package/styles/write-good/TooWordy.yml +0 -221
- package/styles/write-good/Weasel.yml +0 -29
- package/styles/write-good/meta.json +0 -4
- package/test/mcp-example-test.yaml +0 -27
- package/test/test_parser.js +0 -47
- package/testdriver/acceptance-sdk/QUICK_REFERENCE.md +0 -61
- package/testdriver/acceptance-sdk/README.md +0 -128
- package/testdriver/acceptance-sdk/TEST_REPORTING.md +0 -245
- package/testdriver/acceptance-sdk/assert.test.mjs +0 -44
- package/testdriver/acceptance-sdk/scroll-until-text.test.mjs +0 -42
- package/testdriver/acceptance-sdk/setup/lifecycleHelpers.mjs +0 -239
- package/testdriver/acceptance-sdk/type-checking-demo.js +0 -49
- package/testdriver/acceptance-sdk/type.test.mjs +0 -84
- package/vale.ini +0 -18
- package/vitest.config.example.js +0 -19
- package/vitest.config.mjs.bak +0 -44
- /package/docs/{ARCHITECTURE.md → v7/_drafts/architecture.mdx} +0 -0
- /package/docs/{AWESOME_LOGS_QUICK_REF.md → v7/_drafts/awesome-logs-quick-ref.mdx} +0 -0
- /package/{CONTRIBUTING.md → docs/v7/_drafts/contributing.mdx} +0 -0
- /package/docs/v7/{guides → _drafts}/migration.mdx +0 -0
- /package/{PLUGIN_MIGRATION.md → docs/v7/_drafts/plugin-migration.mdx} +0 -0
- /package/{PROMPT_CACHE.md → docs/v7/_drafts/prompt-cache.mdx} +0 -0
- /package/docs/{SDK_AWESOME_LOGS.md → v7/_drafts/sdk-awesome-logs.mdx} +0 -0
- /package/docs/{sdk-browser-rendering.md → v7/_drafts/sdk-browser-rendering.mdx} +0 -0
- /package/{SDK_LOGGING.md → docs/v7/_drafts/sdk-logging.mdx} +0 -0
- /package/{SDK_MIGRATION.md → docs/v7/_drafts/sdk-migration.mdx} +0 -0
- /package/docs/{TEST_RECORDING.md → v7/_drafts/test-recording.mdx} +0 -0
- /package/docs/v7/{README.md → overview/readme.mdx} +0 -0
- /package/{debug-locate-response.js → test/manual/debug-locate-response.js} +0 -0
- /package/{test-find-api.js → test/manual/test-find-api.js} +0 -0
- /package/{test-prompt-cache.js → test/manual/test-prompt-cache.js} +0 -0
- /package/{test-sandbox-render.js → test/manual/test-sandbox-render.js} +0 -0
- /package/{test-sdk-methods.js → test/manual/test-sdk-methods.js} +0 -0
- /package/{test-sdk-refactor.js → test/manual/test-sdk-refactor.js} +0 -0
- /package/{test-stack-trace.mjs → test/manual/test-stack-trace.mjs} +0 -0
- /package/{verify-element-api.js → test/manual/verify-element-api.js} +0 -0
- /package/{verify-types.js → test/manual/verify-types.js} +0 -0
- /package/{testdriver/acceptance-sdk → test/testdriver}/setup/globalTeardown.mjs +0 -0
- /package/{testdriver/acceptance-sdk → test/testdriver}/setup/vitestSetup.mjs +0 -0
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
# yaml-language-server: $schema=https://raw.githubusercontent.com/testdriverai/cli/refs/heads/main/schema.json
|
|
2
|
-
|
|
3
|
-
version: 6.0.5
|
|
4
|
-
session: 687aa621328371880ec75e89
|
|
5
|
-
steps:
|
|
6
|
-
- prompt: Show the desktop
|
|
7
|
-
commands:
|
|
8
|
-
- command: press-keys
|
|
9
|
-
keys:
|
|
10
|
-
- win
|
|
11
|
-
- d
|
|
12
|
-
- prompt: Open the context menu
|
|
13
|
-
commands:
|
|
14
|
-
- command: press-keys
|
|
15
|
-
keys:
|
|
16
|
-
- shift
|
|
17
|
-
- f10
|
|
18
|
-
- prompt: Hover over "New" in the context menu
|
|
19
|
-
commands:
|
|
20
|
-
- command: hover-text
|
|
21
|
-
text: New
|
|
22
|
-
description: new option in the open context menu on the desktop
|
|
23
|
-
action: hover
|
|
24
|
-
- prompt: Click "Text Document" in the context menu
|
|
25
|
-
commands:
|
|
26
|
-
- command: hover-text
|
|
27
|
-
text: Text Document
|
|
28
|
-
description: text document option in the new submenu of the desktop context menu
|
|
29
|
-
action: click
|
|
30
|
-
- prompt: Unfocus the "Text Document" text field
|
|
31
|
-
commands:
|
|
32
|
-
- command: press-keys
|
|
33
|
-
keys:
|
|
34
|
-
- esc
|
|
35
|
-
- prompt: Drag the "New Text Document" icon to the "Recycle Bin"
|
|
36
|
-
commands:
|
|
37
|
-
- command: hover-text
|
|
38
|
-
text: New Text Document
|
|
39
|
-
description: new text document icon in the center of the desktop
|
|
40
|
-
action: mouseDown
|
|
41
|
-
- command: hover-text
|
|
42
|
-
text: Recycle Bin
|
|
43
|
-
description: recycle bin icon in the top left corner of the desktop
|
|
44
|
-
action: mouseUp
|
|
45
|
-
|
|
46
|
-
- prompt: '"New Text Document" icon is not on the Desktop'
|
|
47
|
-
commands:
|
|
48
|
-
- command: assert
|
|
49
|
-
expect: the "New Text Document" icon is not visible on the Desktop
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
version: 5.7.7
|
|
2
|
-
session: 682f5fc22856e2eb40664269
|
|
3
|
-
steps:
|
|
4
|
-
- prompt: fetch user data from API
|
|
5
|
-
commands:
|
|
6
|
-
- command: exec
|
|
7
|
-
output: user
|
|
8
|
-
lang: js
|
|
9
|
-
code: >
|
|
10
|
-
const response = await
|
|
11
|
-
fetch('https://jsonplaceholder.typicode.com/users');
|
|
12
|
-
|
|
13
|
-
const user = await response.json();
|
|
14
|
-
|
|
15
|
-
console.log('user', user[0]);
|
|
16
|
-
|
|
17
|
-
result = user[0].email;
|
|
18
|
-
- command: hover-text
|
|
19
|
-
text: Username
|
|
20
|
-
description: input field for username
|
|
21
|
-
action: click
|
|
22
|
-
- command: type
|
|
23
|
-
text: ${OUTPUT.user}
|
|
24
|
-
- prompt: assert that the username field shows a valid email address
|
|
25
|
-
commands:
|
|
26
|
-
- command: assert
|
|
27
|
-
expect: >-
|
|
28
|
-
the username field contains "Sincere@april.biz" which is a valid email
|
|
29
|
-
address
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
version: 6.0.1-canary.dd4927e.0
|
|
2
|
-
session: 686f219f56143a3ffe789d1e
|
|
3
|
-
steps:
|
|
4
|
-
- prompt: set the date for our test
|
|
5
|
-
commands:
|
|
6
|
-
- command: exec
|
|
7
|
-
lang: pwsh
|
|
8
|
-
output: queryString
|
|
9
|
-
code: |
|
|
10
|
-
$date = (Get-Date).AddMonths(1)
|
|
11
|
-
Write-Output $date.ToString("yyyy-MM-dd")
|
|
12
|
-
- command: assert
|
|
13
|
-
expect: ${OUTPUT.queryString} is a valid date
|
|
14
|
-
- prompt: set the date for our assertion
|
|
15
|
-
commands:
|
|
16
|
-
- command: exec
|
|
17
|
-
lang: pwsh
|
|
18
|
-
output: expectedDate
|
|
19
|
-
code: |
|
|
20
|
-
$date = (Get-Date).AddMonths(1)
|
|
21
|
-
Write-Output $date.ToString("ddd MMM d yyyy")
|
|
22
|
-
# Go to a public calendar that accepts query strings to set the date
|
|
23
|
-
- prompt: >-
|
|
24
|
-
now press ctrl + l, then type
|
|
25
|
-
https://teamup.com/ks48cf2135e7e080bc?view=d&date=${OUTPUT.queryString} and press enter
|
|
26
|
-
commands:
|
|
27
|
-
- command: focus-application
|
|
28
|
-
name: Google Chrome
|
|
29
|
-
- command: press-keys
|
|
30
|
-
keys:
|
|
31
|
-
- ctrl
|
|
32
|
-
- l
|
|
33
|
-
- command: type
|
|
34
|
-
text: https://teamup.com/ks48cf2135e7e080bc?view=d&date=${OUTPUT.queryString}
|
|
35
|
-
- command: press-keys
|
|
36
|
-
keys:
|
|
37
|
-
- enter
|
|
38
|
-
- prompt: assert that the date ${OUTPUT.expectedDate} shows
|
|
39
|
-
commands:
|
|
40
|
-
- command: focus-application
|
|
41
|
-
name: Google Chrome
|
|
42
|
-
- command: assert
|
|
43
|
-
expect: the text ${OUTPUT.expectedDate} is visible on screen
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
version: 5.1.1
|
|
2
|
-
session: 67f00511acbd9ccac373edf7
|
|
3
|
-
steps:
|
|
4
|
-
- prompt: launch chrome
|
|
5
|
-
commands:
|
|
6
|
-
- command: exec
|
|
7
|
-
lang: pwsh
|
|
8
|
-
output: user
|
|
9
|
-
code: |
|
|
10
|
-
# Random email generator in PowerShell
|
|
11
|
-
|
|
12
|
-
# Arrays of possible names and domains
|
|
13
|
-
$firstNames = @("john", "jane", "alex", "chris", "sara", "mike", "lisa", "david", "emma", "ryan")
|
|
14
|
-
$lastNames = @("smith", "johnson", "williams", "brown", "jones", "garcia", "miller", "davis", "martin", "lee")
|
|
15
|
-
$domains = @("example.com", "testmail.com", "mailinator.com", "demo.org", "company.net")
|
|
16
|
-
|
|
17
|
-
# Random selection
|
|
18
|
-
$first = Get-Random -InputObject $firstNames
|
|
19
|
-
$last = Get-Random -InputObject $lastNames
|
|
20
|
-
$domain = Get-Random -InputObject $domains
|
|
21
|
-
$number = Get-Random -Minimum 1 -Maximum 1000
|
|
22
|
-
|
|
23
|
-
# Generate the email
|
|
24
|
-
$email = "$first.$last$number@$domain".ToLower()
|
|
25
|
-
|
|
26
|
-
# Output
|
|
27
|
-
Write-Output "$email"
|
|
28
|
-
|
|
29
|
-
- command: hover-text
|
|
30
|
-
text: Username
|
|
31
|
-
description: input field for username
|
|
32
|
-
action: click
|
|
33
|
-
- command: type
|
|
34
|
-
text: ${OUTPUT.user}
|
|
35
|
-
- prompt: assert that the username field shows a valid email address
|
|
36
|
-
commands:
|
|
37
|
-
- command: assert
|
|
38
|
-
expect: >-
|
|
39
|
-
the username field contains ${OUTPUT.user} which is a valid email
|
|
40
|
-
address
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
version: 6.0.0
|
|
2
|
-
session: 6866d2b90e5814d31e590fce
|
|
3
|
-
steps:
|
|
4
|
-
- prompt: click on the microsoft edge icon
|
|
5
|
-
commands:
|
|
6
|
-
- command: press-keys
|
|
7
|
-
keys:
|
|
8
|
-
- winleft
|
|
9
|
-
- d
|
|
10
|
-
- command: hover-image
|
|
11
|
-
description: a blue and green swirl icon on the taskbar representing Microsoft Edge
|
|
12
|
-
action: click
|
|
13
|
-
- prompt: focus google chrome
|
|
14
|
-
commands:
|
|
15
|
-
- command: focus-application
|
|
16
|
-
name: Google Chrome
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
version: 5.7.7
|
|
2
|
-
session: 682f60bf2856e2eb4066427f
|
|
3
|
-
steps:
|
|
4
|
-
- prompt: complete the login process
|
|
5
|
-
commands:
|
|
6
|
-
- command: run
|
|
7
|
-
file: snippets/login.yaml
|
|
8
|
-
- prompt: click on the image of a shopping cart
|
|
9
|
-
commands:
|
|
10
|
-
- command: focus-application
|
|
11
|
-
name: Google Chrome
|
|
12
|
-
- command: hover-image
|
|
13
|
-
description: shopping cart icon next to the Cart text in the top right corner
|
|
14
|
-
action: click
|
|
15
|
-
- prompt: assert that you see an empty shopping cart
|
|
16
|
-
commands:
|
|
17
|
-
- command: assert
|
|
18
|
-
expect: Your cart is empty
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
version: 6.0.0
|
|
2
|
-
session: 685c63558f43d1527c84d053
|
|
3
|
-
steps:
|
|
4
|
-
- prompt: complete the login process
|
|
5
|
-
commands:
|
|
6
|
-
- command: run
|
|
7
|
-
file: snippets/login.yaml
|
|
8
|
-
- prompt: click on add to cart under the testdriver hat
|
|
9
|
-
commands:
|
|
10
|
-
- command: focus-application
|
|
11
|
-
name: Google Chrome
|
|
12
|
-
- command: hover-text
|
|
13
|
-
text: Add to Cart
|
|
14
|
-
description: add to cart button under TestDriver Hat
|
|
15
|
-
action: click
|
|
16
|
-
- prompt: click on the cart
|
|
17
|
-
commands:
|
|
18
|
-
- command: focus-application
|
|
19
|
-
name: Google Chrome
|
|
20
|
-
- command: hover-text
|
|
21
|
-
text: Cart
|
|
22
|
-
description: cart button in the top right corner
|
|
23
|
-
action: click
|
|
24
|
-
- prompt: assert the testdriver hat is in the cart
|
|
25
|
-
commands:
|
|
26
|
-
- command: focus-application
|
|
27
|
-
name: Google Chrome
|
|
28
|
-
- command: assert
|
|
29
|
-
expect: TestDriver Hat is in the cart
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
version: 6.0.0
|
|
2
|
-
session: 682f5aab811bd5a322c0e5a1
|
|
3
|
-
steps:
|
|
4
|
-
- prompt: click on sign in
|
|
5
|
-
commands:
|
|
6
|
-
- command: focus-application
|
|
7
|
-
name: Google Chrome
|
|
8
|
-
- command: hover-text
|
|
9
|
-
text: Sign In
|
|
10
|
-
description: black button below the password field
|
|
11
|
-
action: click
|
|
12
|
-
timeout: 5000
|
|
13
|
-
- command: assert
|
|
14
|
-
expect: an error shows that fields are required
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
version: 6.0.3-canary.e36d0f0.0
|
|
2
|
-
session: 6879467764060bdfedd4709d
|
|
3
|
-
steps:
|
|
4
|
-
- prompt: if a cookie banner is present on the page, close it
|
|
5
|
-
commands:
|
|
6
|
-
- command: focus-application
|
|
7
|
-
name: Google Chrome
|
|
8
|
-
- command: if
|
|
9
|
-
condition: a cookie banner is visible on the page
|
|
10
|
-
then:
|
|
11
|
-
- command: hover-text
|
|
12
|
-
text: Accept Cookies
|
|
13
|
-
description: accept cookies button
|
|
14
|
-
action: click
|
|
15
|
-
else:
|
|
16
|
-
- command: focus-application
|
|
17
|
-
name: Google Chrome
|
|
18
|
-
- command: if
|
|
19
|
-
condition: the Username field is visible on the page
|
|
20
|
-
then:
|
|
21
|
-
- command: hover-text
|
|
22
|
-
text: Username
|
|
23
|
-
description: username field
|
|
24
|
-
action: click
|
|
25
|
-
- command: type
|
|
26
|
-
text: testuser
|
|
27
|
-
else:
|
|
28
|
-
- command: focus-application
|
|
29
|
-
name: Google Chrome
|
|
30
|
-
- command: assert
|
|
31
|
-
expect: the text testuser is visible on screen
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
version: 5.7.7
|
|
2
|
-
session: 682f5d92811bd5a322c0e636
|
|
3
|
-
steps:
|
|
4
|
-
- prompt: complete the login process
|
|
5
|
-
commands:
|
|
6
|
-
- command: run
|
|
7
|
-
file: snippets/login.yaml
|
|
8
|
-
- prompt: match the image of a shopping cart
|
|
9
|
-
commands:
|
|
10
|
-
- command: run
|
|
11
|
-
file: snippets/match-cart.yaml
|
|
12
|
-
- prompt: assert that you see an empty shopping cart
|
|
13
|
-
commands:
|
|
14
|
-
- command: assert
|
|
15
|
-
expect: Your cart is empty
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
version: 5.7.62
|
|
2
|
-
session: 685af99e5652a7099e99e171
|
|
3
|
-
steps:
|
|
4
|
-
- prompt: create a new tab
|
|
5
|
-
commands:
|
|
6
|
-
- command: focus-application
|
|
7
|
-
name: Google Chrome
|
|
8
|
-
- command: hover-text
|
|
9
|
-
text: Sign In
|
|
10
|
-
description: black button below the password field
|
|
11
|
-
action: click
|
|
12
|
-
- command: press-keys
|
|
13
|
-
keys:
|
|
14
|
-
- ctrl
|
|
15
|
-
- t
|
|
16
|
-
- command: wait-for-text
|
|
17
|
-
text: "Learn more"
|
|
18
|
-
- command: press-keys
|
|
19
|
-
keys:
|
|
20
|
-
- ctrl
|
|
21
|
-
- shift
|
|
22
|
-
- i
|
|
23
|
-
- command: wait-for-text
|
|
24
|
-
text: "Elements"
|
|
25
|
-
- command: press-keys
|
|
26
|
-
keys:
|
|
27
|
-
- ctrl
|
|
28
|
-
- t
|
|
29
|
-
- command: type
|
|
30
|
-
text: google.com
|
|
31
|
-
- command: press-keys
|
|
32
|
-
keys:
|
|
33
|
-
- enter
|
|
34
|
-
- command: assert
|
|
35
|
-
expect: google appears
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
version: 6.0.0
|
|
2
|
-
session: 6869c3e61445b2acbbdc0018
|
|
3
|
-
steps:
|
|
4
|
-
- prompt: log in
|
|
5
|
-
- prompt: add an item to the cart
|
|
6
|
-
- prompt: click on the cart icon
|
|
7
|
-
- prompt: complete checkout
|
|
8
|
-
- prompt: assert
|
|
9
|
-
commands:
|
|
10
|
-
- command: assert
|
|
11
|
-
expect: the testdriver sandbox is visible
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
version: 6.0.11
|
|
2
|
-
session: 689a163a8d474e20a6142e70
|
|
3
|
-
steps:
|
|
4
|
-
- prompt: focus chrome, remember the password, enter the username and the remembered password and login
|
|
5
|
-
commands:
|
|
6
|
-
- command: remember
|
|
7
|
-
description: the password
|
|
8
|
-
output: my_password
|
|
9
|
-
- command: hover-text
|
|
10
|
-
text: Username
|
|
11
|
-
description: username input field
|
|
12
|
-
action: click
|
|
13
|
-
- command: type
|
|
14
|
-
text: standard_user
|
|
15
|
-
- command: press-keys
|
|
16
|
-
keys:
|
|
17
|
-
- tab
|
|
18
|
-
- command: type
|
|
19
|
-
text: ${OUTPUT.my_password}
|
|
20
|
-
- command: press-keys
|
|
21
|
-
keys:
|
|
22
|
-
- tab
|
|
23
|
-
- command: press-keys
|
|
24
|
-
keys:
|
|
25
|
-
- enter
|
|
26
|
-
- command: assert
|
|
27
|
-
expect: The product listing page is visible
|
|
Binary file
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
version: 5.7.62
|
|
2
|
-
session: 685accd3d043aff871e84071
|
|
3
|
-
steps:
|
|
4
|
-
- prompt: Navigate to https://developer.mozilla.org/en-US/docs/Web/HTML
|
|
5
|
-
commands:
|
|
6
|
-
- command: focus-application
|
|
7
|
-
name: Google Chrome
|
|
8
|
-
- command: hover-text
|
|
9
|
-
text: testdriver-sandbox.vercel.app/login
|
|
10
|
-
description: the URL in the omnibox showing the current page
|
|
11
|
-
action: click
|
|
12
|
-
- command: press-keys
|
|
13
|
-
keys:
|
|
14
|
-
- ctrl
|
|
15
|
-
- a
|
|
16
|
-
- command: type
|
|
17
|
-
text: https://www.webhamster.com/
|
|
18
|
-
- command: press-keys
|
|
19
|
-
keys:
|
|
20
|
-
- enter
|
|
21
|
-
- prompt: scroll down with the mouse 1000 pixels
|
|
22
|
-
commands:
|
|
23
|
-
- command: hover-text
|
|
24
|
-
text: The Hamster Dance
|
|
25
|
-
description: large heading at top of page
|
|
26
|
-
action: click
|
|
27
|
-
- command: scroll
|
|
28
|
-
direction: down
|
|
29
|
-
method: keyboard
|
|
30
|
-
amount: 1000
|
|
31
|
-
- prompt: assert the "The Hamster Dance" heading does not show on the webpage
|
|
32
|
-
commands:
|
|
33
|
-
- command: assert
|
|
34
|
-
expect: the page is scrolled down
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
version: 6.0.0
|
|
2
|
-
session: 67f00511acbd9ccac373edf7
|
|
3
|
-
steps:
|
|
4
|
-
- prompt: scroll until image
|
|
5
|
-
commands:
|
|
6
|
-
- command: press-keys
|
|
7
|
-
keys:
|
|
8
|
-
- ctrl
|
|
9
|
-
- l
|
|
10
|
-
- command: type
|
|
11
|
-
text: https://en.wikipedia.org/wiki/Leonardo_da_Vinci
|
|
12
|
-
- command: press-keys
|
|
13
|
-
keys:
|
|
14
|
-
- enter
|
|
15
|
-
- command: hover-text
|
|
16
|
-
text: Leonardo Da Vinci
|
|
17
|
-
description: the page heazding
|
|
18
|
-
action: click
|
|
19
|
-
- command: scroll-until-image
|
|
20
|
-
description: a brown colored house
|
|
21
|
-
direction: down
|
|
22
|
-
|
|
23
|
-
- prompt: assert image of brown colored house appears on screen
|
|
24
|
-
commands:
|
|
25
|
-
- command: assert
|
|
26
|
-
expect: image of brown colored house appears on screen
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
version: 5.7.7
|
|
2
|
-
session: 682f62a1811bd5a322c0e70b
|
|
3
|
-
steps:
|
|
4
|
-
- prompt: complete the login process
|
|
5
|
-
commands:
|
|
6
|
-
- command: run
|
|
7
|
-
file: snippets/login.yaml
|
|
8
|
-
- prompt: scroll until text testdriver socks
|
|
9
|
-
commands:
|
|
10
|
-
- command: focus-application
|
|
11
|
-
name: Google Chrome
|
|
12
|
-
- command: scroll-until-text
|
|
13
|
-
text: testdriver socks
|
|
14
|
-
direction: down
|
|
15
|
-
- prompt: assert testdriver socks appears on screen
|
|
16
|
-
commands:
|
|
17
|
-
- command: focus-application
|
|
18
|
-
name: Google Chrome
|
|
19
|
-
- command: assert
|
|
20
|
-
expect: TestDriver Socks appears on screen
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
version: 5.7.62
|
|
2
|
-
session: 685accd3d043aff871e84071
|
|
3
|
-
steps:
|
|
4
|
-
- prompt: Navigate to https://developer.mozilla.org/en-US/docs/Web/HTML
|
|
5
|
-
commands:
|
|
6
|
-
- command: focus-application
|
|
7
|
-
name: Google Chrome
|
|
8
|
-
- command: hover-text
|
|
9
|
-
text: testdriver-sandbox.vercel.app/login
|
|
10
|
-
description: the URL in the omnibox showing the current page
|
|
11
|
-
action: click
|
|
12
|
-
- command: press-keys
|
|
13
|
-
keys:
|
|
14
|
-
- ctrl
|
|
15
|
-
- a
|
|
16
|
-
- command: type
|
|
17
|
-
text: https://www.webhamster.com/
|
|
18
|
-
- command: press-keys
|
|
19
|
-
keys:
|
|
20
|
-
- enter
|
|
21
|
-
- prompt: scroll down with the mouse 1000 pixels
|
|
22
|
-
commands:
|
|
23
|
-
- command: hover-text
|
|
24
|
-
text: The Hamster Dance
|
|
25
|
-
description: large heading at top of page
|
|
26
|
-
action: click
|
|
27
|
-
- command: scroll
|
|
28
|
-
direction: down
|
|
29
|
-
amount: 1000
|
|
30
|
-
- prompt: assert the "The Hamster Dance" heading does not show on the webpage
|
|
31
|
-
commands:
|
|
32
|
-
- command: assert
|
|
33
|
-
expect: the page is scrolled down
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
perversion: 5.7.7
|
|
2
|
-
session: 682f6071811bd5a322c0e6dd
|
|
3
|
-
steps:
|
|
4
|
-
- prompt: focus chrome
|
|
5
|
-
commands:
|
|
6
|
-
- command: focus-application
|
|
7
|
-
name: Google Chrome
|
|
8
|
-
- prompt: enter a username
|
|
9
|
-
commands:
|
|
10
|
-
- command: hover-text
|
|
11
|
-
text: Username
|
|
12
|
-
description: username input field
|
|
13
|
-
action: click
|
|
14
|
-
- command: type
|
|
15
|
-
text: standard_user
|
|
16
|
-
- prompt: enter a password
|
|
17
|
-
commands:
|
|
18
|
-
- command: hover-text
|
|
19
|
-
text: Password
|
|
20
|
-
description: password input field
|
|
21
|
-
action: click
|
|
22
|
-
- command: type
|
|
23
|
-
text: secret_password
|
|
24
|
-
- prompt: click sign in
|
|
25
|
-
commands:
|
|
26
|
-
- command: hover-text
|
|
27
|
-
text: Sign in
|
|
28
|
-
description: sign in button
|
|
29
|
-
action: click
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
version: 5.7.7
|
|
2
|
-
session: 682f5c4c811bd5a322c0e5c1
|
|
3
|
-
steps:
|
|
4
|
-
- prompt: enter standard_user within the username field
|
|
5
|
-
commands:
|
|
6
|
-
- command: focus-application
|
|
7
|
-
name: Google Chrome
|
|
8
|
-
- command: hover-text
|
|
9
|
-
text: Username
|
|
10
|
-
description: input field for username
|
|
11
|
-
action: click
|
|
12
|
-
- command: type
|
|
13
|
-
text: standard_user
|
|
14
|
-
- prompt: assert that standard_user shows in the username field
|
|
15
|
-
commands:
|
|
16
|
-
- command: assert
|
|
17
|
-
expect: the username field contains "standard_user"
|
|
18
|
-
- prompt: click on sign in
|
|
19
|
-
commands:
|
|
20
|
-
- command: hover-text
|
|
21
|
-
text: Sign in
|
|
22
|
-
description: black button below the password field
|
|
23
|
-
action: click
|
|
24
|
-
- prompt: assert that "please fill out this field" shows in the password field
|
|
25
|
-
commands:
|
|
26
|
-
- command: focus-application
|
|
27
|
-
name: Google Chrome
|
|
28
|
-
- command: assert
|
|
29
|
-
expect: Please fill out this field is visible near the password field
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
version: 5.7.7
|
|
2
|
-
session: 682f5aab811bd5a322c0e5a1
|
|
3
|
-
steps:
|
|
4
|
-
- prompt: click on log in
|
|
5
|
-
commands:
|
|
6
|
-
- command: focus-application
|
|
7
|
-
name: Google Chrome
|
|
8
|
-
- command: hover-text
|
|
9
|
-
text: Log In
|
|
10
|
-
description: black button below the password field
|
|
11
|
-
action: click
|
|
12
|
-
- command: assert
|
|
13
|
-
expect: an error shows that fields are required
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
version: 6.0.0
|
|
2
|
-
steps:
|
|
3
|
-
- commands:
|
|
4
|
-
- command: exec
|
|
5
|
-
lang: pwsh
|
|
6
|
-
code: |
|
|
7
|
-
npm init
|
|
8
|
-
Start-Process "C:\Program Files\Google\Chrome\Application\chrome.exe" -ArgumentList "--start-maximized --disable-infobars --disable-fre --no-default-browser-check --no-first-run --guest --load-extension=$(pwd)/node_modules/dashcam-chrome/build", "${TD_WEBSITE}"
|