Verification & Web Scraping Actions
Web Automation includes two families of actions that go beyond clicking and typing:
- Verification actions assert that a page is in the expected state — data values, list ordering, media loading, layout, and link health.
- Web scraping actions extract data from pages — repeated rows, structured metadata, network responses, and multi-page crawls — into the execution output.
Add these actions to a script the same way as any other action, from the script editor.
How verification results are handled
Verification actions distinguish between an assertion result and an execution error:
- A failed assertion (for example, a list is out of order or a link returns a 404) is recorded in the execution report but does not halt the run. Later actions still execute.
- An action that cannot run at all (for example, a required selector matches nothing) throws an error and stops the run, like any other failing action.
Each verification action contributes a failures-first entry to the execution report, merged into the execution's customOutput. A report entry has the shape:
{
"url": "https://app.example.com/products",
"data": {
"header": "verifyorder",
"pageUrl": "https://app.example.com/products",
"comments": "List is not sorted ascending (2 violations)"
}
}
Verification Actions
verifydata
Extract one or more field values, then assert them against a JavaScript boolean expression.
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
fields | map (string → string) | Yes | -- | Field name to element selector. Each entry captures the text of the matched element. |
assert | string | Yes | -- | JavaScript boolean expression evaluated against the captured fields. |
Output: fields (captured values), assertExpression, assertionPassed.
verifyorder
Verify that a list of elements is sorted.
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
selector | string | Yes | -- | Selector matching the list items to check. |
order | string | Yes | asc | Expected order: asc or desc. |
Output: order, totalItems, isCorrectOrder, values, violations[] (each { index, previousValue, currentValue }).
verifymedia
Verify that images and videos in a page region loaded without breaking.
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
minCount | number | No | 1 | Minimum number of media items expected. |
scope | string | No | "" | Selector limiting the region to check. Empty checks the whole page. |
errorSelector | string | No | "" | Selector whose presence marks a media error. |
reveal | object | No | -- | Optional strategy to reveal lazy-loaded media before checking. |
reveal.clickEach | boolean | No | -- | Click each candidate to reveal media. |
reveal.clickNext | boolean | No | -- | Click a "next" control to page through media. |
reveal.maxClicks | number | No | 10 | Maximum reveal clicks. |
reveal.waitMs | number | No | 800 | Wait after each reveal click, in milliseconds. |
reveal.scrollToBottom | boolean | No | false | Scroll to the bottom to trigger lazy loading. |
Output: scope, scopeFound, images and videos (each { total, loaded, broken, details[] }), totalMedia, totalLoaded, allLoaded.
verifylayout
Detect overlapping or overflowing elements in a page region.
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
scope | string | No | "" | Selector limiting the region to check. Empty checks the whole page. |
checkOverlap | boolean | No | true | Check for overlapping elements. |
checkOverflow | boolean | No | true | Check for elements overflowing their container. |
overlapThreshold | number | No | 0.25 | Fraction of area overlap that counts as an issue. |
minSize | number | No | 8 | Minimum element size, in pixels, to consider. |
failOnIssues | boolean | No | false | Record a failed assertion when issues are found. |
Output: scope, scopeFound, overlapIssues[], overflowIssues[], hasIssues.
verifylinks
Crawl links in a region and check their HTTP status.
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
scope | string | No | "" | Selector limiting the region to check. Empty checks the whole page. |
linkType | string | No | all | Which links to check: all, internal, or external. |
checkHttpStatus | boolean | No | true | Request each link and record its HTTP status. |
maxLinks | number | No | 50 | Maximum number of links to check. |
Output: location, scopeFound, total, valid, redirects, broken, errors, details[] (each { url, text, status, category }).
sortandverify
Apply a UI sort control, then verify the resulting order.
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
open | string | No | -- | Selector for a control that opens the sort menu, if required. |
control | object | Yes | -- | The sort control to operate. |
control.type | string | No | menu | Control type: select or menu. |
control.selector | string | Yes | -- | Selector for the sort control. |
control.optionSelector | string | No | -- | Selector for the option within the control. |
waitAfter | object | No | -- | How to wait after applying the sort. |
waitAfter.strategy | string | No | domstable | Wait strategy: domstable or networkidle. |
waitAfter.timeout | number | No | 10 | Wait timeout, in seconds. |
failOnViolation | boolean | No | true | Record a failed assertion when the order is wrong. |
options | array of objects | Yes | -- | Sort rules to apply and verify. |
options[].match | string | Yes | -- | Option label or value to select. |
options[].verify | boolean | No | true | Verify the order after applying this option. |
options[].field | string | No | -- | Field whose values are compared. |
options[].type | string | No | numeric | Comparison type: numeric or alpha. |
options[].order | string | No | asc | Expected order: asc or desc. |
Output: selectedOption, matchedRule, field, type, order, totalItems, isCorrectOrder, values, violations[].
Web Scraping Actions
Scraping actions write their JSON result to the execution's customOutput, keyed by the action's capture-variable name. The result is then available in the execution report and result and can be consumed by later actions.
extractpagedata
Extract repeated rows from a list or table.
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
selector | string | Yes | -- | Selector matching each row. |
fields | map (string → string) | Yes | -- | Field name to a sub-selector relative to the row. |
limit | number | No | 50 | Maximum number of rows to extract. |
Output: a JSON array of row objects, one per matched row.
extractstructureddata
Extract JSON-LD / schema.org structured metadata embedded in the page.
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
types | array of strings | No | [] | Schema types to keep. Empty returns all found. |
Output: a JSON array of the matching structured-data objects.
capturenetwork
Capture the response body of a matching network request.
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
pattern | string | Yes | -- | Substring matched against request URLs. |
method | string | No | "" | HTTP method to match: "" (any), GET, POST, PUT, PATCH, or DELETE. |
timeout | number | No | 10 | How long to wait for a match, in seconds. |
Output: the captured response body.
crawl
Follow links matching a pattern and extract fields from each page.
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
linkPattern | string | Yes | -- | Pattern matched against link URLs to follow. |
maxPages | number | No | 10 | Maximum number of pages to crawl. |
extractFields | map (string → string) | Yes | -- | Field name to selector, extracted on each page. |
waitStrategy | string | No | domstable | Wait strategy per page: domstable, networkidle, or load. |
paginationSelector | string | No | -- | Selector for a next-page control, if paginating. |
Output: a JSON array with one object per crawled page; each object includes a _url field.
sparoute
Navigate to a client-side route in a single-page application without a full page reload.
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
path | string | Yes | -- | Client-side route path to navigate to. |
waitStrategy | string | No | domstable | Wait strategy after navigation. |
timeout | number | No | 10 | Wait timeout, in seconds. |
randomselect
Pick a random element matching a selector — useful for exercising varied paths.
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
selector | string | Yes | -- | Selector matching the candidate elements. |
Output: totalElements, selectedIndex, selectedText, selectedHref.
Next Steps
- Script Management — Add these actions to a script
- Execution & Monitoring — Find verify and scraping output in the execution report
- Introduction — Full list of supported actions