For the complete documentation index, see llms.txt. This page is also available as Markdown.

Validate

Assert that something is true on screen — presence, state, numbers, or a value you captured earlier.

Validate asserts a condition on screen. A test passes or fails on its validations; every other command exists to reach the screen.

Platforms

Android · iOS

Keywords

Validate, Verify, Confirm, Check — any case

Retries

Up to 3 attempts before the step fails

Batching

Several checks on one line are evaluated together, in one pass

Watch out

Retries are not a wait. A screen that reliably takes 4 seconds needs a Wait

Prerequisites

  • A connected device or emulator

  • An open test file

  • The screen under assertion reached by the steps above the Validate

  • For variable comparisons: a value captured with SET, or an API step

Copy this

OPEN_APP com.shopease.android
Wait Until 5 Seconds

Tap on the cart icon
Wait Until 3 Seconds

Validate 1. Order Summary 2. Delivery address 3. Total amount is visible
Validate that the Place Order button is enabled
Validate that the error message is not visible

Write a validation

  1. Add a Wait after the step that navigates to the screen.

  2. Write Validate <full visible label> is visible, using the label exactly as it renders.

  3. Add a section, a position, or a neighbor when the label appears more than once on the screen.

  4. Number the checks on one line when several apply to the same screen.

  5. Run the test and confirm the report lists each sub-check with its own result.

Assertion forms

Form
Syntax
Example

Presence

Validate <label> is visible

Validate Order Placed tag is visible

Absence

Validate <label> is not visible

Validate that the error message is not visible

State

Validate <label> is enabled / is disabled

Validate that the Place Order button is enabled

Styling

Validate <label> is <state> with <style>

Validate that the Submit button is disabled with grey colour

Position

Validate the <ordinal> "<label>"

Validate the first "Add" CTA

Context

Validate <label> in <section>

Validate Active tag is visible in subscription section

Comparison

Validate <a> is greater than <b>

Validate that the item count is greater than 0

Arithmetic

Validate <a> equals <expression>

Validate that final amount equals subtotal + tax + delivery charges

Against a variable

Validate <thing on screen> matches {{var}}

Validate that the total shown on screen matches {{order.total_amount}}

Partial text

Validate text starts with "<text>" / contains "<text>"

Validate text contains "Success"

Batched

Validate 1. <a> 2. <b> 3. <c> is visible

Validate 1. Order ID 2. Delivery address 3. Total amount is visible

Presence

Use the full visible label.

Add context when the label appears more than once:

Add position when identical labels repeat:

Several things at once

Number the checks on one line. Drizz evaluates checks on the same screen in a single pass, which costs less than three separate validations.

Styling and state

Numbers and comparisons

Drizz evaluates arithmetic rather than reading the total off the screen.

Group calculations that belong together onto one line so they're evaluated as a set:

Directional checks (greater than) survive a pricing change. A hard-coded expected total does not.

Against a variable or an API response

Compare what's on screen to a value captured earlier or pulled from an API.

See Store & SET for capturing the values, and API steps for pulling them from an API.

Inside a conditional

Dynamic text

When only part of the label is stable, validate the stable part.

Full-text validation applies everywhere else. Partial matches over-match.

Retries

A validation gets up to 3 attempts before it fails. Retries absorb jitter, not latency. A screen that reliably takes four seconds needs Wait Until 4 Seconds — by the time three attempts are exhausted, the step has failed on a screen that was never ready. See Waits & timing.

Redundant validations

A Scroll ... until "FAQs" is visible that succeeded has already put the element on screen. A Validate FAQs is visible on the next line is a duplicate check that costs a pass over the screen.

Common mistakes

What you wrote
What happens

Validate Placed is visible when the label reads Order Placed

A partial match can hit the wrong element. Validate the full label

Validate Apply is visible on a screen with three coupons

Matches whichever one it finds first. Add the section or a position

A Validate immediately after a tap that navigates

The validation runs against the old screen, burns its 3 attempts and fails. Add a Wait

Validate that total is 1499 with server-driven pricing

Passes today, fails the next time pricing changes. Use greater than or compare against a stored value

Validating a variable's nameValidate phone is visible

Checks for the literal text "phone". Validate the value, or the label it sits under

Three separate Validate lines for one screen

Three passes over the same screen. Number them on one line instead

A test that taps through five screens and validates nothing

Passes even when the app is broken

Next


Last updated: 6 August 2026

Last updated

Was this helpful?