- It looks at the screen.
- It finds elements from plain-language descriptions.
- It controls a real machine with the mouse and keyboard.
Where selector-based tests fall short
Tools such as Playwright and Cypress drive a single web page through its DOM. They locate elements with selectors. That works until a test needs something the DOM canโt describe reliably:How TestDriver works
A TestDriver test is a Vitest test. It runs against a cloud sandbox, a fresh Linux machine, or Windows on Enterprise plans. Each step describes what a user would see or do:- Provision launches the app under test in the sandbox, such as Chrome at a URL, a Chrome extension, VS Code, an Electron app, or a downloaded installer.
- Find takes a description like
'Sign in button'and uses AI vision to locate the matching element on screen. - Act clicks, types, scrolls, and presses keys on the real machine. The app receives the same input a person would produce.
- Assert checks a plain-language statement about the screen, such as
'the cart shows one item'.
tests/loom-extension.test.mjs
Whatโs included
- The SDK, the
testdriverainpm package. Use it in Vitest tests to provision apps, find elements, act, and assert. - Cloud sandboxes that run your tests on fresh Linux machines, or Windows on Enterprise plans. Enterprise customers can also self-host them.
- Debugging tools: screen recordings of every run, screenshots, and element caching for faster, more stable repeat runs.
- The TestDriver agent, which reviews your pull requests and writes and maintains tests from GitHub.
When to use TestDriver
TestDriver is built for flows that are hard to cover any other way:- Multi-application workflows
- Desktop software
- Browser extensions
- Third-party UIs
- Visual checks
Related
Quickstart
Install TestDriver and run your first test.
Locate elements
Write descriptions that find the right element reliably.
The TestDriver agent
Let the agent review pull requests and build tests from GitHub.
Hosted sandboxes
Run tests on TestDriverโs cloud infrastructure.

