Test Generation with Playwright MCP
Generate a Playwright TypeScript test by first interacting with the real application via the Playwright MCP server, then producing a verified test file.
Workflow
- Get the scenario — If not provided, ask the user to describe the test scenario (URL, steps, expected outcomes)
- Navigate to the application — Use
browser_navigateto load the target page - Execute the scenario step by step — Walk through each interaction using MCP tools:
browser_clickfor clicksbrowser_typefor text inputbrowser_select_optionfor dropdownsbrowser_snapshotto observe state between steps
- Capture locators and assertions — Note the actual locators and expected states observed during execution
- Generate the test — Write a Playwright TypeScript test using
@playwright/testbased on the real interactions observed:
import { test, expect } from '@playwright/test';
test('descriptive test name', async ({ page }) => {
await page.goto('URL');
// Steps based on actual MCP interactions
});
- Save the test — Write the file to the project's tests directory
- Run and iterate — Execute the test and fix any failures until it passes
Guidelines
- Never generate test code before completing the MCP interaction steps
- Use stable locators observed during exploration (
data-testid>getByRole>getByText) - Add meaningful assertions after key interactions
- Keep tests focused on a single user flow
- Use descriptive test names that explain the scenario