Migrate to Playwright
Interactive migration from Cypress or Selenium to Playwright with file-by-file conversion.
Input
$ARGUMENTS can be:
"from cypress"— migrate Cypress test suite"from selenium"— migrate Selenium/WebDriver tests- A file path: convert a specific test file
- Empty: auto-detect source framework
Steps
1. Detect Source Framework
Use Explore subagent to scan:
cypress/directory orcypress.config.ts→ Cypressselenium,webdriverinpackage.jsondeps → Selenium.pytest files withseleniumimports → Selenium (Python)
2. Assess Migration Scope
Count files and categorize:
3. Set Up Playwright (If Not Present)
Run /pw:pw-init first if Playwright isn't configured.
4. Convert Files
For each file, apply the appropriate mapping:
Cypress → Playwright
Load cypress-mapping.md for complete reference.
Key translations:
Cypress custom commands → Playwright fixtures or helper functions
Cypress plugins → Playwright config or fixtures
before/beforeEach → test.beforeAll() / test.beforeEach()
Selenium → Playwright
Load selenium-mapping.md for complete reference.
Key translations:
5. Upgrade Locators
During conversion, upgrade selectors to Playwright best practices:
#id→getByTestId()orgetByRole().class→getByRole()orgetByText()[data-testid]→getByTestId()- XPath → role-based locators
6. Convert Custom Commands / Utilities
- Cypress custom commands → Playwright custom fixtures via
test.extend() - Selenium page objects → Playwright page objects (keep structure, update API)
- Shared helpers → TypeScript utility functions
7. Verify Each Converted File
After converting each file:
Fix any compilation or runtime errors before moving to the next file.
8. Clean Up
After all files are converted:
- Remove Cypress/Selenium dependencies from
package.json - Remove old config files (
cypress.config.ts, etc.) - Update CI workflow to use Playwright
- Update README with new test commands
Ask user before deleting anything.
Output
- Conversion summary: files converted, total tests migrated
- Any tests that couldn't be auto-converted (manual intervention needed)
- Updated CI config
- Before/after comparison of test run results
