How we use Claude to drive Playwright sessions
The core of Zantiq is an AI orchestrator that pairs Claude Opus with Playwright. Claude decides what to do. Playwright does it. Here's how the loop works.
When you kick off a test, you give it a target URL and an instruction โ something like 'Sign up for the app using email, verify your phone number, complete onboarding, and report what happens.' That instruction goes to Claude along with context about the tester: their email, phone number, browser profile, and any previous test history.
Claude generates a step-by-step plan. Not a fixed script โ an adaptive plan that adjusts based on what it sees. Step one might be 'navigate to the signup page.' Claude gets a screenshot and the page's accessibility tree after each step. It reads what's on screen and decides the next action.
This is where it gets interesting. If the app shows a phone verification modal that wasn't in the plan, Claude recognizes it, checks the tester's phone inbox for an SMS code, reads it, and enters it. If OAuth pops up, Claude navigates the OAuth flow using the tester's real credentials. If something unexpected happens โ an error banner, a redirect, a CAPTCHA โ Claude documents it and adjusts.
Each step produces a record: what Claude intended to do, what it actually did, a screenshot, the page state, and how long it took. These records become the test report.
The prompt engineering matters a lot. We've iterated on the system prompt extensively to handle edge cases โ apps that use iframes for auth, multi-step wizards, dynamic form validation that blocks submission. Claude needs specific instructions about retry logic, timeout handling, and when to mark a step as failed versus when to try an alternative approach.
We use Playwright's browser contexts with GoLogin profiles for anti-detect. Each tester gets their own persistent browser context with a unique fingerprint โ canvas hash, WebGL renderer, timezone, language, screen resolution. This isn't stealth patching. It's a fully configured browser profile that looks identical to a real user's setup.
The whole loop runs in about 30-90 seconds for a typical signup flow. Longer for complex onboarding. We're working on parallelism โ running multiple testers through different flows simultaneously. That's coming in the group testing update.
Get updates
New posts and product updates. No fluff, no spam.