Playwright Codegen to Page Object: The Complete Refactoring Workflow
Codegen output is a starting point. Here is the 5-step workflow to transform raw recorded code into production-quality Page Object tests.
π Want to master this with real projects? Join the Playwright Automation Mastery course at The Testing Academy.
Contents
Step 1: Record (Codegen)
npx playwright codegen https://your-app.com
Step 2: Review Locators
Replace every CSS selector with getByRole or getByLabel. If impossible, request data-testid from developers.
π Level Up Your Playwright
From locators to CI pipelines β build a production-grade Playwright + TypeScript framework step by step.
Step 3: Add Assertions
Codegen records actions but not verifications. Add expect() for every user-visible outcome.
Step 4: Extract Page Object
// Before: inline locators in test
await page.getByLabel('Email').fill('test@test.com');
// After: Page Object
class LoginPage {
readonly email = this.page.getByLabel('Email');
constructor(private page: Page) {}
async login(email: string, pass: string) {
await this.email.fill(email);
await this.page.getByLabel('Password').fill(pass);
await this.page.getByRole('button', { name: 'Login' }).click();
}
}
Step 5: Add Data Setup
Replace hardcoded test data with API-created data via fixtures. Add cleanup in afterEach.
π Master Playwright End to End
Join hundreds of SDETs building real automation frameworks. Lifetime access, hands-on projects, and a job-ready portfolio.
