BetterQA Tools / Recording

Record once,
test everywhere

Flows captures your browser actions and converts them into production-ready test scripts. Playwright, Cypress, Puppeteer. AI-powered selectors that survive UI changes.

REC
00:42:16
Click
button[data-testid="submit"]
Type
input[name="email"]
Replay Headless
Formats 5+
Selectors AI

What Flows does today

Record it once, run it whenever you need

Five things you can rely on right now, from the first click to the report.

The Flows AI debugging loop: five steps from a broken selector to a passing test
The Flows AI debugging loop.
  • Record a test by using your site

    Click and type through your app in Chrome, and Flows saves it as a test you can run again.

  • Run a test in the background

    Replay a saved test in a background browser and keep the result to look at later.

  • Run a whole batch at once

    Run a set of saved tests in the background and keep every single result.

  • Results go straight to BugBoard

    Each result is filed in BugBoard under the right test run, so nobody copies results by hand.

  • Take your tests with you

    Export any recorded test as a Playwright script (JS or TS), a Cypress spec or a Selenium script.

Export to any framework

Record once, export to the testing framework your team already uses. Full Page Object Model support, clean code, ready for CI/CD.

PRIMARY
Playwright

TypeScript or JavaScript with async/await. Full Page Object Model generation.

1await page.goto('https://app.example.com');
2await page.fill('[data-testid="email"]', email);
3await page.click('button:has-text("Submit")');
POPULAR
Cypress

Modern E2E with built-in assertions and automatic waiting. cy.* commands.

1cy.visit('https://app.example.com');
2cy.get('[data-testid="email"]').type(email);
3cy.contains('Submit').click();
LEGACY
Puppeteer

Headless Chrome automation. Direct CDP access for advanced scenarios.

1await page.goto('https://app.example.com');
2await page.type('input[name="email"]', email);
3await page.click('button[type="submit"]');

Built for real QA workflows

Not a toy. We use Flows daily on client projects. Every feature exists because we needed it.

AI-Powered Selectors

Intelligent selector generation using data attributes, ARIA roles, and text content. Creates stable locators that survive UI changes without breaking your tests.

#app > div:nth-child(3) > button
button[data-testid="submit"]
button:has-text("Submit")

Smart Wait Handling

Automatically detects network requests, animations, and loading states. Generates appropriate waits without hardcoded timeouts, a common source of flaky tests.

Built-in Assertions

Auto-generates visibility, text content, and state assertions. Add custom assertions with a single click.

Edit Before Export

Review and modify recorded steps. Add variables, loops, and conditions directly in the UI before exporting.

MCP Server Integration

Connect Flows to AI agents via Model Context Protocol. Let Claude or other LLMs control browser automation directly.

AI builds your tests from scratch

Give Flows a URL and requirements. It explores, designs, creates, runs, and heals tests autonomously.

01

EXPLORE

Playwright crawls the site, discovers forms, buttons, and navigation

02

DESIGN

AI architects a test suite from the element catalog

03

CREATE

Step groups, elements, and flows persisted automatically

04

EXECUTE

Suite runs with setup and teardown before and after each test

05

HEAL

Self-healing selectors repair themselves at runtime, so suites need less upkeep

MODE.01
NO API KEY

Claude IS the designer. Explore-only mode returns the element catalog, and Claude designs the suite directly. No external API key needed.

MODE.02
MCP

Connect via MCP, call flows_generate_from_prompt with a URL and requirements. Works with any MCP-compatible editor.

MODE.03
AUTOMATED

Set a Google, OpenRouter, or OpenAI API key. The AI explores, designs, and creates without human input.

We automated with AI - every test passed, nothing worked. That's why we build tools that keep humans in the loop.
- BetterQA Engineering

Generate and debug with AI

Generate full test suites from a URL, or let Claude analyze failures and fix selectors - all via MCP (Model Context Protocol).

A BetterQA engineer in profile at her monitor, reading code

We build our own tools, including an MCP server for Flows. Ask us if you want to use it.

Offline Analysis

Debug flows without the extension running. Data syncs to ~/.flows/

AI Error Explanations

Get human-readable analysis of failures: timeouts, stale elements, click interception

Selector Auditing

Score your flows for stability, identify brittle patterns before they break

Auto-Fix Suggestions

Claude finds alternative selectors from your element library

BugBoard Integration

Submit results directly to BugBoard test management

Agentic Testing Flow

1

Tell the AI what to test

2

Playwright explores the site

3

AI designs and creates suite

4

Run tests, auto-heal failures

5

Results sync to BugBoard

MCP Tools Available

flows_generate_from_prompt One-shot: URL + requirements to full test suite
flows_explore Discover site elements with Playwright
flows_create_from_design Create suite from AI-designed JSON
flows_analyze Debug failures, suggest fixes
flows_fix_selector Apply selector fixes
integration_run_and_report Run flows and submit to BugBoard
Protocol MCP (Model Context Protocol)
Sync File-based + optional WebSocket
Security Path traversal prevention, local-only
Tests Unit tests, SOLID architecture

See it working

Flows, recorded live

A screenshot of a 500 error on a real app. BugBoard writes up the bug and designs the test cases, then Flows automates them and runs them against the app. One test catches a real bug. Recorded live, 7:56.

  1. 0:00A screenshot of a 500 error
  2. 1:09The test cases are designed
  3. 4:01Flows automates them
  4. 6:08Results and a real bug
50+
Engineers using daily
2018
Founded
5
Export formats
4.9
Clutch rating

Ready to record?

See how Flows and BugBoard work together. 15 minutes to understand your testing needs.

Want our engineers to build and run the tests for you? See our test automation service →