Additional Steps
Reference for the 34 additional pre-built action types available in the test editor alongside the built-in steps
Additional steps are extra pre-built action types available in the same action combobox as the built-in steps. The available set is fixed; you cannot define new action types. There are 34 additional action types.
Assert Class
Asserts that an element has a specific CSS class.
| Field | Default | Notes |
|---|---|---|
| Selector | — | Playwright locator for the element |
| CSS Class | — | Expected class name |
| Soft Assertion | off | When on, a failure does not abort the test |
| Timeout (milliseconds) | 0 | 0 means no timeout |
Assert Count
Asserts that the number of elements matching a selector equals an expected count.
| Field | Default | Notes |
|---|---|---|
| Selector | — | Playwright locator |
| Count | 0 | Expected number of matching elements |
| Soft Assertion | off | When on, a failure does not abort the test |
| Timeout (milliseconds) | 0 | 0 means no timeout |
Assert CSS Property
Asserts that a computed CSS property of an element has an expected value.
| Field | Default | Notes |
|---|---|---|
| Selector | — | Playwright locator for the element |
| CSS Property | — | Name of the CSS property, e.g. color, font-size |
| Expected Value | — | Expected computed value, e.g. red, 16px; wrap in /slashes/ for regex |
| Soft Assertion | off | When on, a failure does not abort the test |
| Timeout (milliseconds) | 0 | 0 means no timeout |
Assert Disabled
Asserts that an element is disabled.
| Field | Default | Notes |
|---|---|---|
| Selector | — | Playwright locator for the element |
| Soft Assertion | off | When on, a failure does not abort the test |
| Timeout (milliseconds) | 0 | 0 means no timeout |
Assert Enabled
Asserts that an element is enabled.
| Field | Default | Notes |
|---|---|---|
| Selector | — | Playwright locator for the element |
| Soft Assertion | off | When on, a failure does not abort the test |
| Timeout (milliseconds) | 0 | 0 means no timeout |
Assert HTML Attribute Value
Asserts that an HTML attribute on an element has an expected value.
| Field | Default | Notes |
|---|---|---|
| Selector | — | Playwright locator for the element |
| HTML Attribute | — | Attribute name, e.g. data-testid, class, id |
| Expected Value | — | Expected attribute value; wrap in /slashes/ for regex |
| Soft Assertion | off | When on, a failure does not abort the test |
| Timeout (milliseconds) | 0 | 0 means no timeout |
Assert No Text
Asserts that an element does not contain a given text.
| Field | Default | Notes |
|---|---|---|
| Selector | — | Playwright locator for the element |
| Text | — | Text that must not be present |
| Substring Match | off | When on, asserts the element does not contain the text; when off, asserts the full text does not match exactly |
| Soft Assertion | off | When on, a failure does not abort the test |
| Timeout (milliseconds) | 0 | 0 means no timeout |
Assert Not Visible
Asserts that an element is not visible.
| Field | Default | Notes |
|---|---|---|
| Selector | — | Playwright locator for the element |
| Soft Assertion | off | When on, a failure does not abort the test |
| Timeout (milliseconds) | 0 | 0 means no timeout |
Assert No Value
Asserts that an input element does not have a specific value.
| Field | Default | Notes |
|---|---|---|
| Selector | — | Playwright locator for the element |
| Value | — | Value that must not be present |
| Soft Assertion | off | When on, a failure does not abort the test |
| Timeout (milliseconds) | 0 | 0 means no timeout |
Assert Title
Asserts that the page title matches an expected value.
| Field | Default | Notes |
|---|---|---|
| Title | — | Expected page title |
| Soft Assertion | off | When on, a failure does not abort the test |
| Timeout (milliseconds) | 0 | 0 means no timeout |
Assert URL
Asserts that the current page URL matches an expected value.
| Field | Default | Notes |
|---|---|---|
| URL | — | Expected URL |
| Soft Assertion | off | When on, a failure does not abort the test |
| Timeout (milliseconds) | 0 | 0 means no timeout |
Clear
Clears the value of an input field.
| Field | Default | Notes |
|---|---|---|
| Selector | — | Playwright locator for the element |
| Timeout (milliseconds) | 0 | 0 means no timeout |
Code
Executes custom JavaScript in the browser or Playwright context.
| Field | Default | Notes |
|---|---|---|
| Evaluation type | playwright | playwright (Node.js/Playwright context), web (via page.evaluate()), or async (via page.evaluateHandle()) |
| Code | — | JavaScript code to execute |
Debug
Inserts a debug breakpoint into the test run. Has no configuration fields.
Drag To
Drags an element to a target element.
| Field | Default | Notes |
|---|---|---|
| Selector | — | Playwright locator for the element to drag |
| Target Selector | — | Playwright locator for the drop target |
| Force | off | When on, bypasses actionability checks |
| Timeout (milliseconds) | 0 | 0 means no timeout |
Email Validation
Retrieves messages from a configured email inbox and runs custom code against them. Requires an email inbox and API key. See Email Inboxes for setup.
| Field | Default | Notes |
|---|---|---|
| Inbox | — | Email inbox to read from |
| API Key | — | API key with email inbox read permission |
| Code | — | JavaScript to run against the retrieved messages; messages is available as an array of {id, fromAddress, subject, bodyText, bodyHtml, receivedAt} |
Extract Cookie
Reads a browser cookie and stores its value in a test variable.
| Field | Default | Notes |
|---|---|---|
| Cookie Name | — | Name of the cookie to read |
| Variable Name | — | Variable to store the cookie value in |
| Assert Cookie Exists | off | When on, fails the step if the cookie is not found; when off, sets the variable to null |
| Timeout (milliseconds) | 0 | 0 means no timeout |
Extract Text
Reads text from an element and stores it in a test variable.
| Field | Default | Notes |
|---|---|---|
| Selector | — | Playwright locator for the element |
| Variable Name | — | Variable to store the extracted value in |
| Regex Pattern (optional) | — | Regular expression to extract a portion of the text |
| Substring Match | off | When on, extracts a substring rather than full text |
| Trim Whitespace | off | When on, strips leading and trailing whitespace |
| Extract from Input Value | off | When on, uses inputValue instead of textContent; for input, textarea, and select elements |
Fetch
Makes an HTTP request and optionally processes the response with custom code.
| Field | Default | Notes |
|---|---|---|
| URL | — | Request URL |
| Method | GET | GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS |
| Headers (JSON) | — | Request headers as a JSON object (optional) |
| Request Body | — | Request body (optional) |
| Response Status | 200 | Expected HTTP status code |
| Response Processing Script | — | JavaScript to process the response; the response is available as response (optional) |
Focus
Focuses an element to trigger focus-related behaviour.
| Field | Default | Notes |
|---|---|---|
| Selector | — | Playwright locator for the element |
| Timeout (milliseconds) | 0 | 0 means no timeout |
Generate Date
Generates a random date and stores it in a test variable.
| Field | Default | Notes |
|---|---|---|
| Mode | Relative offset | Relative offset (days from today) or Absolute dates |
| Min Offset (days) | 0 | Minimum days from today (relative mode) |
| Max Offset (days) | 7 | Maximum days from today (relative mode) |
| Min Date | — | Earliest possible date (absolute mode) |
| Max Date | — | Latest possible date (absolute mode) |
| Date Format | yyyy-MM-dd | Output format string |
| Variable Name | — | Variable to store the generated date in |
Generate String
Generates a random string and stores it in a test variable. The generated string uses characters a–z and 0–9.
| Field | Default | Notes |
|---|---|---|
| Length | 10 | Length of the generated string |
| Variable Name | — | Variable to store the generated string in |
Go Back
Navigates back in the browser history.
| Field | Default | Notes |
|---|---|---|
| Wait Until | Default (load) | Options: Default (load), load, domcontentloaded, networkidle, commit. Default (load) leaves the option unset so Playwright's default (load) applies. |
| Timeout (milliseconds) | 0 | 0 means no timeout |
Go Forward
Navigates forward in the browser history.
| Field | Default | Notes |
|---|---|---|
| Wait Until | Default (load) | Options: Default (load), load, domcontentloaded, networkidle, commit. Default (load) leaves the option unset so Playwright's default (load) applies. |
| Timeout (milliseconds) | 0 | 0 means no timeout |
Inspect Downloaded File
Runs custom code against a file that was downloaded during the test.
| Field | Default | Notes |
|---|---|---|
| Download Trigger | — | Element Selector (click an element) or On Last Step (use the download from the previous step) |
| Selector | — | Element to click to trigger the download (Element Selector mode only) |
| Download Inspection Code | — | JavaScript to inspect and handle the downloaded file |
| Encoding | utf-8 | File encoding |
| Timeout (milliseconds) | 0 | 0 means no timeout |
Inspect Element
Runs custom JavaScript on a selected element.
| Field | Default | Notes |
|---|---|---|
| Evaluation type | playwright | playwright, web, or async |
| Selector | — | Playwright locator for the element |
| Code to Execute | — | JavaScript to run on the element |
| Retry until passing | off | When on, wraps in expect.toPass() so Playwright retries until success or step timeout |
| Timeout (milliseconds) | 0 | 0 means no timeout |
Locator Handler
Registers a handler that runs whenever a given element becomes visible, such as a cookie banner or modal. The handler fires automatically during the test run whenever the locator matches.
| Field | Default | Notes |
|---|---|---|
| Selector | — | Playwright locator to watch for |
| Handler Code | — | JavaScript to run when the locator becomes visible |
Press Sequentially
Types text into an element one character at a time, firing real key events for each character. Use this for Monaco editors, contenteditable elements, and other controlled inputs where Fill does not work.
| Field | Default | Notes |
|---|---|---|
| Selector | — | Playwright locator for the element |
| Text | — | Text to type |
| Delay between keystrokes (ms) | 0 | Time to wait between each keystroke |
| Blur after typing | off | When on, triggers a blur event after typing |
| Timeout (milliseconds) | 0 | 0 means no timeout |
Reload
Reloads the current page.
| Field | Default | Notes |
|---|---|---|
| Wait Until | Default (load) | Options: Default (load), load, domcontentloaded, networkidle, commit. Default (load) leaves the option unset so Playwright's default (load) applies. |
| Timeout (milliseconds) | 0 | 0 means no timeout |
Script
Runs a Node.js script with optional Node.js module and NPM package imports.
| Field | Default | Notes |
|---|---|---|
| Script Code | — | JavaScript to execute |
| Node.js Modules | — | Built-in Node.js modules to import (Module Name, optional Reference Name) |
| NPM Packages | — | NPM packages to import (Package Name, optional Reference Name, optional Version) |
Only modules and packages on the organisation's allow-list can be added.
Scroll
Scrolls an element or the page.
| Field | Default | Notes |
|---|---|---|
| Selector | — | Playwright locator for the element (used when Scroll Type is element) |
| Scroll Type | — | element (scroll into view), byAmount (scroll by pixel offset), toBottom (scroll to bottom of page) |
| Behavior | smooth | smooth, instant, or auto |
| X Offset (pixels) | 0 | Horizontal scroll amount (byAmount mode only) |
| Y Offset (pixels) | 0 | Vertical scroll amount (byAmount mode only) |
| Smooth Scrolling | off | When on, uses smooth scrolling animation |
| Scroll to Bottom of Page | off | When on, scrolls to the bottom of the page |
Set Viewport Size
Resizes the browser viewport.
| Field | Default | Notes |
|---|---|---|
| Width (pixels) | 1920 | Viewport width |
| Height (pixels) | 1080 | Viewport height |
Tap
Taps an element (mobile touch action).
| Field | Default | Notes |
|---|---|---|
| Selector | — | Playwright locator for the element |
| Timeout (milliseconds) | 0 | 0 means no timeout |
Wait
Pauses test execution for a fixed duration.
| Field | Default | Notes |
|---|---|---|
| Milliseconds | 1000 | How long to wait |