Skip to main content

Overview

TestDriver provides custom error classes with rich debugging information. These are exported from the SDK and can be used for instanceof checks in your tests.

ElementNotFoundError

Thrown when find() cannot locate an element on screen, or when calling click()/hover() on an unfound element.

Properties

string
Always "ElementNotFoundError".
string
Enhanced message with a debug block containing element description, cache status, similarity scores, and AI response details.
string
The original element description passed to find().
string | null
Absolute path to a debug screenshot saved at the time of failure. Written to <os.tmpdir>/testdriver-debug/screenshot-<timestamp>.png.
string | null
Absolute path to a pixel diff image showing the comparison between the cached and current screenshots. Written to <os.tmpdir>/testdriver-debug/pixel-diff-error-<timestamp>.png. Only present when cache was involved.
string | null
URL to the cached image that was compared against.
object | null
Sanitized AI response object. Large binary fields (croppedImage, screenshot, pixelDiffImage) are removed. Contains cache metadata like similarity, cacheHit, cacheStrategy, cacheDiffPercent, and threshold.
string
ISO 8601 timestamp of when the error was created.

Enhanced Message

The error message is automatically enhanced with debugging information:

Stack Trace Cleaning

Stack traces are automatically cleaned to remove internal SDK frames (Element.*, sdk.js internals), showing only your test code for easier debugging.

AIError

Thrown when act() exhausts all retry attempts.

Properties

string
Always "AIError".
string
Enhanced message with execution details block.
string
The task description passed to act().
number
Number of attempts that were made.
number
Maximum number of attempts configured.
number
Total execution time in milliseconds.
Error | undefined
The underlying error that caused the final failure.
string
ISO 8601 timestamp of when the error was created.

Enhanced Message

Internal Error Classes

These errors are used internally by the agent and are not exported, but may appear as the cause of an AIError:

MatchError

Thrown when element matching fails (text, image, or assertion).

CommandError

Thrown for invalid arguments or unsupported operations.

Soft Assert Mode

Inside act(), assertions run in soft assert mode. When an assertion fails, it returns the failure result instead of throwing, allowing the AI to process the failure and adjust its approach.
This is automatic β€” you don’t need to configure it. Regular assert() calls outside of act() will throw normally on failure.

Error Handling Patterns

Catching Specific Errors

Using Debug Screenshots

Types