testdriverai 6.0.22 → 6.0.23

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.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  title: "Enterprise"
3
- sidebarTitle: "Enterprise"
3
+ sidebarTitle: "For Enterprise"
4
4
  description: "The TestDriver 4x4 Guarantee!"
5
5
  icon: gem
6
6
  ---
@@ -1,7 +1,7 @@
1
1
  ---
2
- title: "CI/CD Setup Guide"
3
- sidebarTitle: "Setup Guide"
4
- description: "Learn how to set up and configure TestDriver CLI for automated cloud-based testing in your CI/CD workflows."
2
+ title: "CI Setup Guide"
3
+ sidebarTitle: "CI Setup"
4
+ description: "Learn how to set up and configure TestDriver CLI for automated cloud-based testing in your CI workflows."
5
5
  icon: "square-terminal"
6
6
  ---
7
7
 
@@ -1,8 +1,8 @@
1
1
  ---
2
- title: "Overview of the TestDriver CLI"
3
- sidebarTitle: "CLI Overview"
2
+ title: "TestDriver CLI Flags"
3
+ sidebarTitle: "Flags"
4
4
  description: "Learn about the TestDriver CLI, its commands, and how to use it effectively."
5
- icon: "terminal"
5
+ icon: "flag"
6
6
  ---
7
7
 
8
8
  The `testdriverai` CLI is the primary interface for running, managing, and debugging TestDriver scripts. It provides commands to execute tests, validate configurations, and interact with the TestDriver framework.
package/docs/docs.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://mintlify.com/docs.json",
3
- "theme": "mint",
3
+ "theme": "willow",
4
4
  "name": "TestDriver",
5
5
  "colors": {
6
6
  "primary": "#b3d334",
@@ -12,92 +12,67 @@
12
12
  },
13
13
  "favicon": "/images/template/icon.png",
14
14
  "navigation": {
15
- "tabs": [
15
+ "groups": [
16
16
  {
17
- "tab": "Overview",
18
- "groups": [
17
+ "group": "Overview",
18
+ "pages": [
19
+ "/overview/what-is-testdriver",
19
20
  {
20
- "group": "Intro",
21
+ "group": "Concepts",
22
+ "icon": "book",
21
23
  "pages": [
22
- "/overview/quickstart",
23
- "/overview/what-is-testdriver",
24
- "/overview/faq",
24
+ "/features/selectorless",
25
25
  "/overview/comparison",
26
26
  "/overview/performance",
27
- "/account/enterprise"
28
- ]
29
- },
30
- {
31
- "group": "Features",
32
- "pages": [
33
- "/features/selectorless",
34
- "/features/generation",
35
- "/features/visual-assertions",
36
- "/features/auto-healing",
37
- "/features/reusable-snippets",
38
- "/features/parallel-testing"
39
- ]
40
- },
41
- {
42
- "group": "Security & Privacy",
43
- "pages": [
44
- "/security/agent",
45
- "/security/action",
46
- "/security/platform"
27
+ "/overview/faq"
47
28
  ]
48
29
  },
30
+ "/account/enterprise"
31
+ ]
32
+ },
33
+ {
34
+ "group": "Get Started",
35
+ "pages": [
36
+ "/overview/quickstart",
49
37
  {
50
- "group": "Account",
38
+ "group": "CLI",
39
+ "icon": "terminal",
51
40
  "pages": [
52
- "/account/dashboard",
53
- "/account/projects",
54
- "/account/team"
41
+ "/getting-started/cli",
42
+ "/cli/overview",
43
+ {
44
+ "group": "Commands",
45
+ "icon": "command",
46
+ "pages": [
47
+ "/interactive/assert",
48
+ "/interactive/dry",
49
+ "/interactive/explore",
50
+ "/interactive/generate",
51
+ "/interactive/run",
52
+ "/interactive/save",
53
+ "/interactive/undo"
54
+ ]
55
+ }
55
56
  ]
56
57
  }
57
58
  ]
58
59
  },
59
60
  {
60
- "tab": "Guide",
61
- "groups": [
61
+ "group": "Examples",
62
+ "pages": [
62
63
  {
63
- "group": "Getting Started",
64
- "pages": [
65
- "/getting-started/vscode",
66
- "/getting-started/running",
67
- "/getting-started/ci",
68
- "/getting-started/editing"
69
- ]
70
- },
71
- {
72
- "group": "Writing Tests",
64
+ "group": "Apps",
65
+ "icon": "laptop",
73
66
  "pages": [
74
- "/guide/locating",
75
- "/guide/waiting",
76
- "/guide/assertions",
77
- "/guide/variables",
78
- "/guide/authentication",
79
- "/guide/lifecycle",
80
- "/guide/code",
81
- "/guide/environment-variables",
82
- "/guide/protips"
67
+ "apps/static-websites",
68
+ "apps/desktop-apps",
69
+ "apps/chrome-extensions",
70
+ "apps/mobile-apps"
83
71
  ]
84
72
  },
85
- {
86
- "group": "Running in CI",
87
- "pages": [
88
- "/action/setup",
89
- "/action/performance",
90
- "/action/secrets",
91
- "/action/ami"
92
- ]
93
- }
94
- ]
95
- },
96
- {
97
- "tab": "Examples",
98
- "groups": [
99
73
  {
100
74
  "group": "Scenarios",
75
+ "icon": "computer-mouse",
101
76
  "pages": [
102
77
  "scenarios/ai-chatbot",
103
78
  "scenarios/cookie-banner",
@@ -109,29 +84,45 @@
109
84
  ]
110
85
  },
111
86
  {
112
- "group": "Apps",
87
+ "group": "Build Systems",
88
+ "icon": "helmet-safety",
113
89
  "pages": [
114
- "apps/chrome-extensions",
115
- "apps/desktop-apps",
116
- "apps/mobile-apps",
117
- "apps/static-websites"
90
+ "/integrations/electron",
91
+ "/integrations/netlify",
92
+ "/integrations/vercel"
118
93
  ]
119
94
  }
120
95
  ]
121
96
  },
122
97
  {
123
- "tab": "Integrations",
124
- "groups": [
98
+ "group": "Guide",
99
+ "pages": [
125
100
  {
126
- "group": "Building",
101
+ "group": "Configuration",
102
+ "icon": "desktop",
127
103
  "pages": [
128
- "/integrations/electron",
129
- "/integrations/netlify",
130
- "/integrations/vercel"
104
+ "/guide/variables",
105
+ "/guide/lifecycle",
106
+ "/guide/environment-variables",
107
+ "/action/ami"
108
+ ]
109
+ },
110
+ {
111
+ "group": "Writing",
112
+ "icon": "pencil",
113
+ "pages": [
114
+ "/features/generation",
115
+ "/guide/locating",
116
+ "/guide/waiting",
117
+ "/guide/assertions",
118
+ "/guide/code",
119
+ "/features/reusable-snippets",
120
+ "/guide/protips"
131
121
  ]
132
122
  },
133
123
  {
134
124
  "group": "Importing",
125
+ "icon": "file-import",
135
126
  "pages": [
136
127
  "/importing/csv",
137
128
  "/importing/gherkin",
@@ -140,58 +131,49 @@
140
131
  ]
141
132
  },
142
133
  {
143
- "group": "Exporting",
144
- "pages": ["/exporting/playwright", "exporting/junit"]
145
- },
146
- {
147
- "group": "Test Reporting",
148
- "pages": ["exporting/junit", "/bugs/jira"]
149
- }
150
- ]
151
- },
152
- {
153
- "tab": "Reference",
154
- "groups": [
155
- {
156
- "group": "Commands",
134
+ "group": "Running",
135
+ "icon": "play",
157
136
  "pages": [
158
- "/commands/assert",
159
- "/commands/exec",
160
- "/commands/focus-application",
161
- "/commands/hover-image",
162
- "/commands/hover-text",
163
- "/commands/if",
164
- "/commands/match-image",
165
- "/commands/press-keys",
166
- "/commands/remember",
167
- "/commands/run",
168
- "/commands/scroll",
169
- "/commands/scroll-until-image",
170
- "/commands/scroll-until-text",
171
- "/commands/type",
172
- "/commands/wait",
173
- "/commands/wait-for-image",
174
- "/commands/wait-for-text",
175
- "/commands/issues"
137
+ "/getting-started/running",
138
+ "/action/setup",
139
+ "/features/parallel-testing",
140
+ "/action/performance",
141
+ "/action/secrets"
176
142
  ]
177
143
  },
178
144
  {
179
- "group": "Interactive Commands",
180
- "pages": [
181
- "/interactive/assert",
182
- "/interactive/dry",
183
- "/interactive/explore",
184
- "/interactive/generate",
185
- "/interactive/run",
186
- "/interactive/save",
187
- "/interactive/undo"
188
- ]
145
+ "group": "Maintaining",
146
+ "icon": "wrench",
147
+ "pages": ["/getting-started/editing", "/features/auto-healing"]
189
148
  },
190
149
  {
191
- "group": "CLI",
192
- "pages": ["/cli/overview"]
150
+ "group": "Reporting",
151
+ "icon": "chart-simple",
152
+ "pages": ["exporting/junit", "/bugs/jira"]
193
153
  }
194
154
  ]
155
+ },
156
+ {
157
+ "group": "Reference",
158
+ "pages": [
159
+ "/commands/assert",
160
+ "/commands/exec",
161
+ "/commands/focus-application",
162
+ "/commands/hover-image",
163
+ "/commands/hover-text",
164
+ "/commands/if",
165
+ "/commands/match-image",
166
+ "/commands/press-keys",
167
+ "/commands/remember",
168
+ "/commands/run",
169
+ "/commands/scroll",
170
+ "/commands/scroll-until-image",
171
+ "/commands/scroll-until-text",
172
+ "/commands/type",
173
+ "/commands/wait",
174
+ "/commands/wait-for-image",
175
+ "/commands/wait-for-text"
176
+ ]
195
177
  }
196
178
  ],
197
179
  "global": {
@@ -215,17 +197,9 @@
215
197
  },
216
198
  "navbar": {
217
199
  "links": [
218
- {
219
- "label": "GitHub",
220
- "href": "https://github.com/testdriverai/testdriverai"
221
- },
222
200
  {
223
201
  "label": "Discord",
224
202
  "href": "https://discord.com/invite/cWDFW8DzPm"
225
- },
226
- {
227
- "label": "Report an Issue",
228
- "href": "https://forums.testdriver.ai/new-topic?category=help"
229
203
  }
230
204
  ],
231
205
  "primary": {
@@ -1,15 +1,15 @@
1
1
  ---
2
- title: "Auto-Healing in TestDriver"
3
- sidebarTitle: "Auto-Healing"
4
- description: "Learn how TestDriver's auto-healing feature keeps your tests resilient and up-to-date with minimal manual effort."
2
+ title: "Self-Healing in TestDriver"
3
+ sidebarTitle: "Self-Healing"
4
+ description: "Learn how TestDriver's self-healing feature keeps your tests resilient and up-to-date with minimal manual effort."
5
5
  icon: "bandage"
6
6
  ---
7
7
 
8
- Auto-healing is a powerful feature in TestDriver that ensures your tests remain resilient even when the application under test changes.
8
+ Self-healing is a powerful feature in TestDriver that ensures your tests remain resilient even when the application under test changes.
9
9
 
10
- Use `--heal` to enable auto-healing in your test runs. This feature allows TestDriver to automatically update tests when minor changes occur, such as text updates or small UI adjustments, without requiring manual intervention.
10
+ Use `--heal` to enable self-healing in your test runs. This feature allows TestDriver to automatically recover when minor changes occur, such as text updates or small UI adjustments, without requiring manual intervention.
11
11
 
12
- ## Why use auto-healing?
12
+ ## Why use self-healing?
13
13
 
14
14
  In modern software development, applications frequently undergo changes, whether it's UI updates, text modifications, or layout adjustments. These changes can lead to test failures, requiring developers to manually update test scripts to reflect the new state of the application.
15
15
 
@@ -17,28 +17,28 @@ This means that if a test fails due to a change in the application, TestDriver w
17
17
 
18
18
  This feature is particularly useful in continuous integration (CI) environments, where tests need to adapt to frequent changes in the application.
19
19
 
20
- ## How to enable auto-healing
20
+ ## How to enable self-healing
21
21
 
22
- To enable auto-healing in TestDriver, simply add the `--heal` and `--write` flags when running your tests. The `--heal` flag instructs TestDriver to attempt to automatically update any failing tests due to minor changes in the application, while `--write` ensures the updated test files are saved.
22
+ To enable self-healing in TestDriver, simply add the `--heal` and `--write` flags when running your tests. The `--heal` flag instructs TestDriver to recover when test fail due to minor changes in the application, while `--write` saves newly generated steps to the test file.
23
23
 
24
24
  ```bash
25
25
  npx testdriverai@latest run my-tests.yaml --heal --write
26
26
  ```
27
27
 
28
- ## How auto-healing works
28
+ ## How self-healing works
29
29
 
30
30
  When TestDriver steps fail, the AI will progressively fall back to attempt to complete the test.
31
31
 
32
- When running with `--heal` and `--write`, TestDriver will update the test files locally with any changes made during auto-healing. You can then use GitHub Actions to commit these changes and create a pull request for review.
32
+ When running with `--heal` and `--write`, TestDriver will update the test files locally with any changes made during self-healing. You can then use GitHub Actions to commit these changes and create a pull request for review.
33
33
 
34
- ## Benefits of auto-healing
34
+ ## Benefits of self-healing
35
35
 
36
36
  - **Reduced Maintenance**: Eliminates the need for manual updates to tests when minor UI changes occur.
37
37
  - **Increased Test Resilience**: Ensures tests adapt to changes without breaking.
38
38
  - **Continuous Integration**: Keeps your test suite aligned with the latest application changes.
39
39
  - **Developer Collaboration**: Automatically opens a PR, allowing developers to review and approve updates.
40
40
 
41
- ## How auto-healing works
41
+ ## How self-healing works
42
42
 
43
43
  1. **Test Execution**: TestDriver runs your test suite as usual.
44
44
  2. **Failure Detection**: If a test fails due to a change in the application (for example, text or UI updates), the AI identifies the failure point.
@@ -67,7 +67,7 @@ When running with `--heal` and `--write`, TestDriver will update the test files
67
67
  - TestDriver runs the test and fails to find the "Submit" button.
68
68
  </Step>
69
69
 
70
- <Step title="Auto-Healing">
70
+ <Step title="Self-Healing">
71
71
  - The AI detects the failure and searches for a similar element.
72
72
  - It identifies the "Send" button as the updated element and retries the action.
73
73
  </Step>
@@ -88,12 +88,12 @@ When running with `--heal` and `--write`, TestDriver will update the test files
88
88
 
89
89
  </Step>
90
90
  </Steps>
91
- ## Example GitHub Action for Auto-Healing
91
+ ## Example GitHub Action for self-healing
92
92
 
93
- Here's how you can configure a GitHub Action to enable auto-healing and automatically create PRs for any test updates:
93
+ Here's how you can configure a GitHub Action to enable self-healing and automatically create PRs for any test updates:
94
94
 
95
95
  ```yaml
96
- name: TestDriver Auto-Healing
96
+ name: TestDriver Self-Healing
97
97
 
98
98
  on:
99
99
  push:
@@ -104,12 +104,12 @@ on:
104
104
 
105
105
  jobs:
106
106
  test:
107
- name: "Run Tests with Auto-Healing"
107
+ name: "Run Tests with Self-Healing"
108
108
  steps:
109
109
  - name: Check out repository
110
110
  uses: actions/checkout@v4
111
111
 
112
- - name: Run TestDriver with Auto-Healing
112
+ - name: Run TestDriver with Self-Healing
113
113
  run: npx testdriverai@latest run testdriver/onboarding.yaml --heal --write --headless
114
114
  env:
115
115
  TD_API_KEY: ${{ secrets.TD_API_KEY }}
@@ -126,7 +126,7 @@ jobs:
126
126
  with:
127
127
  token: ${{ secrets.GITHUB_TOKEN }}
128
128
  commit-message: "Auto-healed test updates"
129
- title: "Auto-Healed Test Updates"
129
+ title: "Self-Healed Test Updates"
130
130
  branch: auto-heal-updates
131
131
  base: main
132
132
  body: |
@@ -137,8 +137,8 @@ jobs:
137
137
 
138
138
  ---
139
139
 
140
- ## Limitations of Auto-Healing
140
+ ## Limitations of Self-Healing
141
141
 
142
- - **Major UI Overhauls**: Auto-healing is best suited for minor changes (for example, text updates, small layout adjustments). Significant UI changes may still require manual intervention.
142
+ - **Major UI Overhauls**: Self-healing is best suited for minor changes (for example, text updates, small layout adjustments). Significant UI changes may still require manual intervention.
143
143
  - **Ambiguous Changes**: If multiple elements match the updated criteria, the AI may require additional context to make the correct decision.
144
144
  - **Step Deletion**: If UI or wizard pages are removed, the AI may not be able to recover. In such cases, manual updates are necessary.
@@ -1,5 +1,5 @@
1
1
  ---
2
- title: "Selectorless Testing with TestDriver"
2
+ title: "Selectorless Testing"
3
3
  sidebarTitle: "Selectorless Testing"
4
4
  description: "Selectorless testing approach simplifies end-to-end testing by using natural language and AI vision."
5
5
  icon: "eye"
@@ -0,0 +1,97 @@
1
+ ---
2
+ title: "Setup"
3
+ sidebarTitle: "Setup"
4
+ description: "Get started with TestDriver in minutes."
5
+ icon: "download"
6
+ mode: "wide"
7
+ ---
8
+
9
+ import Comments from "/snippets/comments.mdx";
10
+
11
+ <Steps>
12
+ <Step title="Set up your environment">
13
+
14
+ Copy your API key from [the TestDriver dashboard](https://app.testdriver.ai/team), and set it as an environment variable.
15
+
16
+ <Tabs>
17
+ <Tab title="macOS / Linux">
18
+ ```bash Export an environment variable on macOS or Linux systems
19
+ export TD_API_KEY="your_api_key_here"
20
+ ```
21
+ </Tab>
22
+ <Tab title="Windows">
23
+ ```powershell Export an environment variable in PowerShell
24
+ setx TD_API_KEY "your_api_key_here"
25
+ ```
26
+ </Tab>
27
+ </Tabs>
28
+
29
+ </Step>
30
+ <Step title="Try an example test">
31
+
32
+ Download the TestDriver GitHub repository and run the web example test.
33
+
34
+ ```bash
35
+ git clone https://github.com/testdriverai/cli testdriverai
36
+ cd testdriverai/testdriver/examples/web
37
+ ```
38
+
39
+ TestDriver tests are written in YAML, a human-readable data format. The `example.yaml` file contains a series of steps that the agent will execute.
40
+
41
+ ```yaml testdriver/test.yaml
42
+ steps:
43
+ - prompt: log in
44
+ - prompt: add an item to the cart
45
+ - prompt: click on the cart icon
46
+ - prompt: complete checkout
47
+ ```
48
+
49
+ Each step has a `prompt` that describes what the agent should do. The agent will use the prompt to generate [commands](/commands) that make the tests faster and more reliable the next time you run the test.
50
+
51
+ </Step>
52
+ <Step title="Generate test steps from prompts">
53
+
54
+ Run the following command to run the test file. TestDriver will spawn a virtual machine, launch the sandbox test page, and execute the steps defined in the `example.yaml` file.
55
+
56
+ ```bash
57
+ npx testdriverai@beta run example.yaml --write --heal
58
+ ```
59
+
60
+ The `--write` flag tells TestDriver to save any generated commands to the test file, and the `--heal` flag allows TestDriver to recover from unexpected issues during the test run.
61
+
62
+ </Step>
63
+ <Step title="Run a regression test">
64
+
65
+ ```yaml
66
+ version: 5.7.7
67
+ session: 682f6071811bd5a322c0e6dd
68
+ steps:
69
+ - prompt: focus chrome
70
+ commands:
71
+ - command: focus-application
72
+ name: Google Chrome
73
+ - prompt: enter a username
74
+ commands:
75
+ - command: hover-text
76
+ text: Username
77
+ description: username input field
78
+ action: click
79
+ - command: type
80
+ text: standard_user
81
+ - prompt: enter a password
82
+ commands:
83
+ - command: hover-text
84
+ text: Password
85
+ description: password input field
86
+ action: click
87
+ - command: type
88
+ text: secret_password
89
+ ```
90
+
91
+ The `--write` command tells the agent to save the generated commands to the test file, and the `--heal` command gives the agent permission to recover if something goes wrong.
92
+
93
+ </Step>
94
+ </Steps>
95
+
96
+ <Comments />
97
+ ```
@@ -2,7 +2,7 @@
2
2
  title: "Lifecycle Files"
3
3
  sidebarTitle: "Lifecycle Files"
4
4
  description: "Learn how to customize TestDriver execution with lifecycle files for setup, provisioning, and cleanup."
5
- icon: "arrows-rotate"
5
+ icon: "wrench"
6
6
  ---
7
7
 
8
8
  Lifecycle files are YAML files placed in your repository's `lifecycle/` directory. TestDriver automatically executes these files during the appropriate phases:
@@ -7,26 +7,26 @@ icon: "star"
7
7
 
8
8
  TestDriver is a vision-based testing tool and is not aware of the underlying HTML structure of the page. Pay attention to the following tips to improve your testing experience and reduce test flake.
9
9
 
10
- ### Use unique descriptions for `hover-image` and `hover-text`
10
+ ### Use unique descriptions for [`hover-image`](/commands/hover-image) and [`hover-text`](/commands/hover-text)
11
11
 
12
- When executing the `hover-image` and `hover-text` command, TestDriver may use the description to identify the image, especially if multiple images are visible. If multiple images on the screen match the description, TestDriver may not be able to determine which one to interact with. To improve accuracy, use specific and unique descriptions for images.
12
+ When executing the [`hover-image`](/commands/hover-image) and [`hover-text`](/commands/hover-text) command, TestDriver may use the description to identify the image, especially if multiple images are visible. If multiple images on the screen match the description, TestDriver may not be able to determine which one to interact with. To improve accuracy, use specific and unique descriptions for images.
13
13
 
14
- TestDriver may not accurately locate matches in certain cases. This can lead to unexpected behavior when using the `hover-image` or `hover-text` command. For example, if you specify a description that's too generic or similar to other images on the screen, TestDriver may not be able to identify the correct image to interact with. To improve accuracy, use specific and unique descriptions for images and text.
15
- When executing the `hover-image` and `hover-text` commands, TestDriver uses the provided description to identify the target image or text. If the description is too generic or matches multiple elements on the screen, TestDriver may not be able to determine which one to interact with, leading to unexpected behavior. To improve accuracy, always use specific and unique descriptions for both images and text.
14
+ TestDriver may not accurately locate matches in certain cases. This can lead to unexpected behavior when using the [`hover-image`](/commands/hover-image) or [`hover-text`](/commands/hover-text) command. For example, if you specify a description that's too generic or similar to other images on the screen, TestDriver may not be able to identify the correct image to interact with. To improve accuracy, use specific and unique descriptions for images and text.
15
+ When executing the [`hover-image`](/commands/hover-image) and [`hover-text`](/commands/hover-text) commands, TestDriver uses the provided description to identify the target image or text. If the description is too generic or matches multiple elements on the screen, TestDriver may not be able to determine which one to interact with, leading to unexpected behavior. To improve accuracy, always use specific and unique descriptions for both images and text.
16
16
 
17
- ### Avoid using `hover-text` for single characters (ex: `1`, `>`, `|`)
17
+ ### Avoid using [`hover-text`](/commands/hover-text) for single characters (ex: `1`, `>`, `|`)
18
18
 
19
- To improve accuracy of our model, we do not include single characters or symbols in the matching data. This means that `hover-text` may not work as expected for these cases. If you need to interact with single characters or symbols, consider using the `match-image` command with a screenshot of the target element instead.
19
+ To improve accuracy of our model, we do not include single characters or symbols in the matching data. This means that [`hover-text`](/commands/hover-text) may not work as expected for these cases. If you need to interact with single characters or symbols, consider using the [`match-image`](/commands/match-image) command with a screenshot of the target element instead.
20
20
 
21
21
  ### Use `<label>`s to match empty text inputs.
22
22
 
23
- To focus empty text inputs, prefer to `hover-text` on the label associated with the input. This [should](https://www.w3.org/WAI/tutorials/forms/labels/) focus the input field.
23
+ To focus empty text inputs, prefer to [`hover-text`](/commands/hover-text) on the label associated with the input. This [should](https://www.w3.org/WAI/tutorials/forms/labels/) focus the input field.
24
24
 
25
- This is more reliable than trying to match the empty input itself, which may not have any visible text. You can always use `match-image` to match the input field if needed.
25
+ This is more reliable than trying to match the empty input itself, which may not have any visible text. You can always use [`match-image`](/commands/match-image) to match the input field if needed.
26
26
 
27
- ### Provide strict criteria for `assert`
27
+ ### Provide strict criteria for [`assert`](/commands/assert)
28
28
 
29
- Assertions use the current state of the page to determine if the step passes or fails. `assert` is not aware of the past, so avoid writing "assert" steps that rely on previous state. Instead, use `assert` to check the current state of the page against strict criteria.
29
+ Assertions use the current state of the page to determine if the step passes or fails. [`assert`](/commands/assert) is not aware of the past, so avoid writing "assert" steps that rely on previous state. Instead, use [`assert`](/commands/assert) to check the current state of the page against strict criteria.
30
30
 
31
31
  ## Reporting issues
32
32