Capture the flow
Use the recorded actions and observed page states to identify what the test should do.
Give Cartographer an authorized app and a goal such as “sign up, enter the email code, and open the workspace.” It follows the route, returns the pages and browser actions it reached, and gives you a check to review or rerun.
Exploration and test export are in beta. Exported tests are plain Playwright that run without Molar.
Start with an authorized URL and a concrete goal. Cartographer’s agent follows the pages that matter, then leaves the route, browser action, and expected result together.
Illustrative map · no request is sent from this demo.
Select a route to inspect the state Cartographer would carry forward. The Blocked branch makes permissions visible instead of quietly treating an inaccessible page as a success.
A click can work while the checkout is still wrong. Inspect the selected element, the browser action, and the result that made the check fail.
Buy Pro for $24 and confirm the account has Pro access.
page.getByTestId('receipt-total')The amount check failed. Later account-access checks have not run.
Sample data · select a step to inspect it. The failed amount check remains failed when you review earlier actions.
Choose a starting page, the account role, and the part of the app you want to understand. The map reflects what the run observed within those limits.
Use a preview or test app for flows that create accounts, submit forms, or change data. Connect its test services before exploring payment or messaging paths.
A saved member profile and an admin profile reveal different routes. Profiles must belong to the same project and website as the exploration.
Limit allowed hosts, link depth, total pages, and repeated URL patterns. State a focus such as signup and settings so the run has a useful starting point.
Check which pages and transitions were observed, where access was missing, and whether a limit stopped discovery. An unexplored route is not a passing check.
{
"base_url": "https://preview.example.test",
"depth": 3,
"max_pages": 40,
"max_per_pattern": 4,
"scope_allowlist": [
"preview.example.test"
],
"crawl_focus_prompt": "Explore signup and account settings",
"auth_context": {
"mode": "browser_profile",
"browser_profile": "qa-member"
}
}Send this body to POST https://api.molar.it/v1/projects/{project_id}/crawls with your API token. Replace the URL and use an existing qa-member profile for that project and origin.
Keep the browser observation, the assertion, and the replay result separate. That is how you judge whether a generated test belongs in your suite.
Use the recorded actions and observed page states to identify what the test should do.
Review the selected elements, setup, and assertions. A click is not proof of the expected result.
Run the generated test with fresh fixtures. Check the actual assertion results and retained artifacts.
Review the verified test in your repository and configure when it should run.
“The receipt appeared” would miss this example’s price error. Check the receipt total against the amount the customer selected.
await expect(page.getByTestId('receipt-total'))
.toHaveText('$24.00');Codegen records your browser interactions and can generate visibility, text, and value assertions. Cartographer adds goal-driven exploration and a map of the routes it observes. Keep existing tests and review new generated tests alongside them.
How Playwright codegen worksExplore routes, run a specific task, or verify a page state. Choose the command that matches the job.
With --mode preview, exploration covers only the flows you name and finishes sooner. It returns a route map, not a test file.
molar explore https://preview.example.test \
--intent "cover signup and settings" \
--max-pages 40 --mode preview --jsonUse a configured test account and a local app for a workflow that may change state.
molar run "sign in and reach the dashboard" \
--url http://localhost:3000 --jsonCheck a claim against the URL without asking for a state-changing workflow.
molar verify "the login form is visible" --url http://localhost:3000 --jsonInstall the CLI with npm install -g @molar/cli and sign in with molar login first. The URLs are placeholders for your own app.
Turn on the additional checks you want on visited pages. Review the reported issue and its page context.
Automated rules can flag issues such as missing form labels. They support accessibility work; they do not replace a complete audit.
Compare captured pages with a configured baseline to inspect layout or appearance changes.
Optional sampled checks can flag potential UI problems for review. Sampling and its budget limit what gets examined.
This recording is an actual controlled public browser check: four observed actions, a final screenshot, and a result record. Watch it add an element, confirm it appeared, remove it, and check its absence. This recording is separate from the illustrated route map above.
Open the recorded run detailsHave a specific workflow in mind?
Talk to us
Give it an authorized URL and one concrete goal, such as reaching a dashboard after email verification or showing an order receipt after checkout.
Yes. Runs against localhost use a browser on your own machine. Hosted runs use the target and saved logins you configure.
It represents pages and transitions observed during an exploration or task. Select a route to inspect its browser actions, expected result, and illustrative assertion.
Yes. Save a test account as a saved login or browser profile for the project. Molar uses it only on the project’s own hosts.
molar run starts a goal-directed browser task and may change state. molar verify checks a claim against a URL or prior task result and is intended for read-only verification.
Yes. Keep your Playwright tests. Exported Cartographer tests are plain Playwright files you can add alongside them.
No. A discovered page or a completed click is not an assertion. Check that the requested result was observed, and review blocked or unvisited branches separately.
Not yet. Recording with the browser extension is in development.
The run can return a blocked status with the available task, Trace, screenshot, and artifact references. Review the missing access or input before trying again.
Create a free workspace, add your app’s URL and a test account, and describe the first task to check.
Free during the beta. No card.