Each step performs one action. To test a multi-part interaction (e.g., click a field, then type into it), use multiple steps.
Action
The most common step type. An action step performs a single user interaction on the page. Supported action types:| Action | Description |
|---|---|
| Click | Click on an element |
| Fill | Type text into an input field |
| Hover | Hover over an element |
| Press | Press a keyboard key or shortcut |
| Upload | Upload a file to a file input |
Navigate
A navigate step goes to a specific URL. Use this to start a test on a particular page or to jump to a different part of your application mid-test.Wait
A wait step pauses the test for a specified duration. This is useful when you need to wait for an animation, a background process, or a delayed API response before continuing. The default wait duration is 5 seconds.Assert
An assert step verifies that something is true on the page — for example, that a success message is visible or that a specific element exists. If the assertion fails, the test fails. Assert steps wait up to 2 seconds by default for the condition to become true before failing.Upload
An upload step attaches one or more files to a file input on the page. See File Uploads for details on supported file types and size limits.Conditional
A conditional step checks a condition and then performs an action based on the result. It has two parts:- If — The condition to check (e.g., “a cookie banner is visible”)
- Then — The action to take if the condition is true (e.g., “click the Accept button”)
Rules
- One action per step — Each step performs exactly one interaction. Break multi-part interactions into separate steps.
- Assertions don’t count as actions — Assert steps validate state but don’t interact with the page.
- Conditionals are non-blocking — If the condition isn’t met, the test moves on to the next step without failing.