TestOwl LogoTestOwlDocs

Step Library: Every TestOwl Step Type

The Step Library is the catalogue of every building block you can add to a Test Case or Flow. Each step does one thing — click a button, check some text, call an API, run a loop — and you combine them to describe a complete test.

You'll find the library in the Step Palette of the Step Editor. Drag a step into your test, or click it to add it at the end, then configure it in the Properties Panel. Use the palette's search box to find a step by name.

The Recorder creates many of these steps for you automatically as you use your application.

Settings every step has

Almost every step includes these general settings in the Properties Panel:

SettingWhat it does
NameThe step's label in the Step Tree and in reports.
DescriptionAn optional note explaining the step.
On FailureWhat happens if the step fails: Fail Immediately (the default) stops the test; Continue But Fail Test keeps running the remaining steps but marks the test as failed; Warn But Continue Execution logs a warning and carries on as if nothing happened.
Use Smart TimeoutOn by default. TestOwl automatically adjusts how long it waits for the step.
Timeout ValueShown when Smart Timeout is off. How long to wait, in milliseconds (default 60000).

Step-specific fields (the target element, the text to type, the value to expect, and so on) appear below these.

Use Variables and Secrets

Most fields accept {{variableName}} references so you don't hard-code values. See Variables and Secrets.

Steps by category

Move around the browser, tabs, and windows.

StepWhat it does
Visit PageOpen a page URL.
Navigate BackGo back in the browser history.
Navigate ForwardGo forward in the browser history.
Refresh PageReload the current page.
Open New TabOpen a new browser tab.
Switch TabSwitch to another open tab.
Close TabClose a browser tab.
Switch WindowSwitch to another browser window.
Close WindowClose a browser window.
Handle DialogAccept or dismiss a native alert/confirm/prompt dialog. Add this BEFORE the step that opens it.

Mouse

Click, hover, scroll, and select with the mouse.

StepWhat it does
Left ClickClick an element with the primary mouse button.
Double ClickDouble-click an element.
Right ClickOpen the context menu on an element.
Mouse OverMove the mouse over an element.
ScrollScroll the page or an element to a position.
Text SelectionSelect a range of text on the page.
Mouse DownPress and hold a mouse button over an element.
Mouse UpRelease a mouse button over an element.
Move Mouse To ElementMove the pointer over an element.

Keyboard

Press keys and move focus.

StepWhat it does
Key DownPress a keyboard key.
Focus ChangeMove keyboard focus to an element via Tab.
Press Key CombinationPress a key combination (e.g. Control+S).

Input

Fill in and change form controls.

StepWhat it does
Type Text (palette search: "Type")Type text into an element.
Select Option (palette search: "Select")Select option values from a dropdown.
CheckboxSet checkbox values.
Rich Text Input (palette search: "Rich Text")Type text into a contenteditable element.
Range Change (palette search: "Range")Move a range slider to a value.
RadioSelect a radio button.
ClearClear the value of an input element.
Blur ElementRemove focus from an element.
Set DateSet the value of a date input.
Set TimeSet the value of a time input.
Set Date TimeSet the value of a datetime input.

Form

Submit forms.

StepWhat it does
Form SubmitSubmit a form.

Clipboard

Copy, cut, and paste.

StepWhat it does
CopyCopy from a target element.
CutCut from a target element.
PastePaste into a target element.

Drag

Drag and drop elements.

StepWhat it does
Drag and Drop (palette search: "Drag Drop")Drag an element and drop it onto a target.
Drag By OffsetDrag an element by a pixel offset.

Gesture

Touch gestures for mobile and tablet tests.

StepWhat it does
GesturePerform a touch gesture.
Double TapDouble-tap an element (touch devices).
ZoomPinch-zoom in or out (touch devices).
Change OrientationChange the device orientation.

File

Upload and download files.

StepWhat it does
File InputUpload one or more files via a file input.
File RemoveRemove an attached file from a file input.
Download FileDownload a file triggered by a click or URL.

Media

Control audio and video playback.

StepWhat it does
MediaControl audio or video playback.

Viewport

Resize the window, go fullscreen, and take screenshots.

StepWhat it does
Resize ViewportResize the browser viewport to specific dimensions.
FullscreenEnter or exit fullscreen mode.
Take ScreenshotCapture a screenshot of the page or an element.

Wait

Pause until something is ready, or for a fixed time.

StepWhat it does
Wait/DelayWait for a fixed duration.
Wait for VisibleWait until an element is visible.
Wait for HiddenWait until an element is hidden.
Wait for EnabledWait until an element is enabled.
Wait for AnimationWait until a CSS animation settles.
Wait for CountWait until a number of matching elements exists.
Wait for URLWait until the page URL matches a pattern.
Wait for FunctionWait until a JavaScript expression returns truthy.
Wait For ElementWait for an element to appear.
Wait For Element AttachedWait for an element to be attached to the DOM.
Wait For Element DetachedWait for an element to be detached from the DOM.
Wait For Element DisabledWait for an element to become disabled.
Wait For Page LoadWait for the page load event.
Wait For DOM ReadyWait for the DOM to be ready.
Wait For Title ChangeWait for the page title to change.
Wait For ConditionWait until a JavaScript condition holds.
Wait For Variable ValueWait until a variable has the expected value.
Wait For API CompletionWait for a pending API call to complete.
Wait For RequestWait for a matching network request.
Wait For ResponseWait for a matching network response.
Wait For DownloadWait for a download to complete.
Wait For UploadWait for an upload to complete.

Assertion

Check that your application behaves as expected.

StepWhat it does
Assert TextAssert element text content.
Assert VisibleAssert element visibility.
Assert EnabledAssert element enabled state.
Assert CheckedAssert element checked state.
Assert SelectAssert select element value.
Assert OrderAssert the order of items in a list.
Assert ColumnAssert a Kanban/grid item belongs to a column.
Assert NetworkAssert a network request URL, method, and payload.
Assert Visual DiffCompare a screenshot against a stored baseline.
Assert AttributeAssert an HTML attribute value.
Assert ValueAssert an input or form control current value.
Assert CSSAssert a computed CSS property value.
Assert CountAssert the number of matching elements.
Assert URLAssert the current page URL.
Assert TitleAssert the page title.
Assert Local StorageAssert local storage values.
Assert Session StorageAssert session storage values.
Assert CookieAssert a browser cookie value.
Element ExistsAssert that an element exists in the DOM.
Element Not ExistsAssert that an element does not exist in the DOM.
Element EditableAssert that an element is editable.
Element FocusedAssert that an element has focus.
Attribute Not ExistsAssert that an element attribute is absent.
Count BetweenAssert that the element count falls within a range.
Page Contains TextAssert that the page contains the given text.
Page Not Contains TextAssert that the page does not contain the given text.
ExpressionAssert that a JS expression evaluated in the page returns the expected boolean.
Status Code EqualsAssert the captured API response status code.
Response Time Less ThanAssert the captured API response time.
Response Header EqualsAssert a captured API response header.
Response Body ContainsAssert the captured API response body content.
JSON Path EqualsAssert a JSONPath value in the captured API response.
JSON Schema ValidValidate the captured API response against a JSON schema.
Response Body SizeAssert the byte size of the captured API response body.
Record ExistsAssert that a database record exists.
Record Not ExistsAssert that a database record does not exist.
Record Count EqualsAssert a database record count.
File ExistsAssert that a downloaded file exists.
File Contains TextAssert that a downloaded file contains text.
Email ReceivedAssert that an email was received in the test inbox.
Email Subject EqualsAssert a received email’s subject.
Email Body ContainsAssert a received email’s body content.
No Accessibility ViolationsRun an axe-core scan and assert no violations at or above the impact level.
ARIA Attribute ExistsAssert that an ARIA attribute exists on an element.
Valid Contrast RatioAssert an element’s text contrast ratio meets the threshold.
Pixel ComparisonCompare a screenshot against a stored baseline pixel-by-pixel.
Region ComparisonCompare a page region against a stored baseline, with exclusions.

Control Flow

Add conditions, loops, and retries.

StepWhat it does
If / EndCreate an if block with an end branch.
If / ElseCreate true and else branches.
For LoopCreate a loop branch.
SwitchRun the case matching the subject value.
For EachLoop over the items of a list or JSON array.
While LoopLoop while the condition holds.
Repeat UntilLoop until the condition holds (runs at least once).
BreakExit the innermost loop.
ContinueSkip to the next loop iteration.
ReturnStop executing the current flow or test body.
Stop TestStop the test with the given result.
Retry StepRetry a single wrapped step until it passes.
Retry BlockRetry a block of steps until it passes.

Extraction

Read values from the page into variables.

StepWhat it does
Get TextExtract an element’s text content into a variable.
Get Inner TextExtract an element’s rendered innerText into a variable.
Get Inner HTMLExtract an element’s innerHTML into a variable.
Get AttributeExtract an element attribute into a variable.
Get CSS PropertyExtract a computed CSS property into a variable.
Get ValueExtract an input’s value into a variable.
Get Element CountCount matching elements into a variable.
Get Table DataExtract a table’s rows into a variable.
Get List DataExtract a list’s items into a variable.
Get Current URLExtract the browser’s current URL into a variable.

Data & Variables

Create, change, and generate values while the test runs.

StepWhat it does
Create VariableCreate a runtime variable.
Update VariableUpdate a runtime variable.
Delete VariableDelete a runtime variable.
Generate Random StringGenerate a random string into a variable.
Generate Random NumberGenerate a random number into a variable.
Generate Random EmailGenerate a random email address into a variable.
Generate UUIDGenerate a UUID into a variable.
Current DateStore the current date/time into a variable.
Add DaysAdd days to a date variable.
Subtract DaysSubtract days from a date variable.
Format DateFormat a date value into a variable.
Parse JSONParse a JSON string into a variable.
String ReplaceReplace text within a string variable.
String SplitSplit a string into an array variable.
String JoinJoin array items into a string variable.
String TrimTrim whitespace from a string variable.
Array PushAppend an item to an array variable.
Array RemoveRemove an item from an array variable.
Array LengthStore an array’s length into a variable.
Object GetRead a property from an object variable.
Object SetSet a property on an object variable.
AddAdd two numbers into a variable.
SubtractSubtract one number from another into a variable.
MultiplyMultiply two numbers into a variable.
DivideDivide one number by another into a variable.
ModuloStore the remainder of dividing one number by another into a variable.
Calculate ExpressionEvaluate an arithmetic expression into a variable.

Browser Storage

Work with cookies, local storage, and session storage.

StepWhat it does
Set CookieSet a browser cookie.
Get CookieRead a cookie value into a variable.
Delete CookieDelete a cookie by name.
Clear CookiesClear all cookies for the current context.
Set Local StorageSet a localStorage entry.
Get Local StorageRead a localStorage entry into a variable.
Remove Local StorageRemove a localStorage entry.
Clear Local StorageClear all localStorage entries.
Set Session StorageSet a sessionStorage entry.
Get Session StorageRead a sessionStorage entry into a variable.
Clear Session StorageClear all sessionStorage entries.

API

Send HTTP requests and check the response.

StepWhat it does
Send API RequestSend an HTTP request and capture the response.

Network

Intercept, change, mock, or block network traffic.

StepWhat it does
Intercept RequestIntercept matching network requests.
Mock ResponseMock the response for matching requests.
Modify RequestModify matching requests before they are sent.
Modify ResponseModify matching responses before the page sees them.
Block RequestBlock matching network requests.

Database

Run queries against a configured database.

StepWhat it does
Execute QueryExecute a SQL query against a configured database.
Execute Stored ProcedureExecute a stored procedure against a configured database.

Util

Notes and custom code.

StepWhat it does
CommentAdd a note. Never executed.
Code ExecutionRun custom JavaScript in the page.

Reusing steps as Flows

A Flow is a saved group of steps you can drop into any test as a single block. Flows appear in their own Flows list in the Step Palette. See Flows.

The library keeps growing

New steps are added over time. What you see in the Step Palette is always the current list, so if a step here doesn't appear yet in your palette, refresh the page.

Next steps

Last updated:

Maintained by the TestOwl product team.