test-framework-migration-skill
Migrates and converts test automation scripts between Selenium, Playwright, Puppeteer, and Cypress.
Skill by TestMu AI
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/lambdatest-test-framework-migration-skill
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: testing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/test-framework-migration-skill
What's inside
- Skill name
test-framework-migration-skill- Description
- Migrates and converts test automation scripts between Selenium, Playwright, Puppeteer, and Cypress. Use when the user asks to migrate, convert, or port tests from one framework to another; rewrite tests in a different framework; or switch from Selenium to Playwright, Playwright to Selenium, Puppeteer to Playwright, Cypress to Playwright, or vice versa. Triggers on: "migrate", "convert", "port", "selenium to playwright", "playwright to selenium", "puppeteer to playwright", "cypress to playwright", "rewrite tests in", "switch from [framework] to [framework]".
- License
- MIT
- Metadata
- author: TestMu AI · version: 1.0
- Instructions
- 102 lines in SKILL.md · view on GitHub
Files (13)
- SKILL.md
- cypress-to-playwright.md · reference/
- cypress-to-selenium.md · reference/
- overview.md · reference/
- playbook.md · reference/
- playwright-to-cypress.md · reference/
- playwright-to-puppeteer.md · reference/
- playwright-to-selenium.md · reference/
- puppeteer-to-playwright.md · reference/
- puppeteer-to-selenium.md · reference/
- selenium-to-cypress.md · reference/
- selenium-to-playwright.md · reference/
- selenium-to-puppeteer.md · reference/
SKILL.md (first lines)
# Test Framework Migration Skill
You are a senior QA automation architect. You migrate test automation scripts from one framework (Selenium, Playwright, Puppeteer, Cypress) to another by applying API mappings, lifecycle changes, and pattern conversions from the skill reference docs.
## Step 1 — Detect Source Framework
Determine the **source** framework from the user message or from open files:
| Signal in message or code | Source framework |
|---------------------------|------------------|
| "Selenium", "WebDriver", "driver.findElement", "By.id", "ChromeDriver" | Selenium |
| "Playwright", "page.getByRole", "expect(locator).toBeVisible", "@playwright/test" | Playwright |
| "Puppeteer", "page.$", "page.goto", "puppeteer.launch" | Puppeteer |
| "Cypress", "cy.get", "cy.visit", "cy.contains", "cy.should" | Cypress |
If ambiguous (e.g. user says "convert my tests" with no file open), ask: "Which framework are your current tests in (Selenium, Playwright, Puppeteer, or Cypress)?"
## Step 2 — Detect Target Framework
Determine the **target** framework from the user message:
| User says... | Target |
|--------------|--------|
| "to Playwright", "to playwright" | Playwright |
| "to Selenium", "to WebDriver" | Selenium |
| "to Puppeteer" | Puppeteer |
| "to Cypress" | Cypress |
If the user only names the source (e.g. "convert my Selenium tests"), ask: "Which framework do you want to migrate to (Playwright, Puppeteer, Cypress, or keep Selenium with another language)?"
## Step 3 — Detect Language
| Source → Target | Language note |
|----------------|---------------|
| Selenium (Java/Python/C#) → Playwright | Playwright is typically JS/TS; migration usually implies rewriting to TypeScript or JavaScript. Mention this if source is Java/C#/Python. |
| Selenium (JS) → Playwright | Same language (JS/TS) possible. |
| Playwright/Puppeteer/Cypress → Selenium | Target can be Java, Python, JS, C#. Prefer same as project or ask. |
| Playwright ↔ Puppeteer ↔ Cypress | Typically stay in JS/TS. |
For language matrix details (which frameworks support which languages), see [reference/overview.md](reference/overview.md).
## Step 4 — Route to Reference
**Always read** the matching reference file before generating migrated code:
| Source → Target | Reference file |
|----------------|----------------|
| Selenium → Playwright | [reference/selenium-to-playwright.md](reference/selenium-to-playwright.md) |
| Playwright → Selenium | [reference/playwright-to-selenium.md](reference/playwright-to-selenium.md) |
| Selenium → Puppeteer | [reference/selenium-to-puppeteer.md](reference/selenium-to-puppeteer.md) |
| Puppeteer → Selenium | [reference/puppeteer-to-selenium.md](reference/puppeteer-to-selenium.md) |
| Puppeteer → Playwright | [reference/puppeteer-to-playwright.md](reference/puppeteer-to-playwright.md) |
| Playwright → Puppeteer | [reference/playwright-to-puppeteer.md](reference/playwright-to-puppeteer.md) |
| Cypress → Playwright | [reference/cypress-to-playwright.md](reference/cypress-to-playwright.md) |
| Playwright → Cypress | [reference/playwright-to-cypress.md](reference/playwright-to-cypress.md) |
| Selenium → Cypress | [reference/selenium-to-cypress.md](reference/selenium-to-cypress.md) |
| Cypress → Selenium | [reference/cypress-to-selenium.md](reference/cypress-to-selenium.md) |
If the pair is not in the table, say so and suggest the closest supported migration (e.g. add WebDriverIO later as a new reference file).
## Step 5 — Apply Mappings
Using the reference doc:
1. **Locators** — Convert using the API mapping table (e.g. `By.id("x")` → `page.getByRole(...)` or `page.locator('#x')`).
2. **Waits** — Convert wait strategy (explicit wait / auto-wait / cy.should).
3. **Actions** — Map click, type, select, etc.
4. **Assertions** — Map to target's assertion style.
5. **Lifecycle** — Adjust setup/teardown (driver vs page, launch vs connect).
6. **Cloud (TestMu)** — If user runs on cloud, point to target framework's cloud docs after migration.
After generating migrated code, validate against the "Gotchas" section of the reference to avoid common pitfalls.
## Cross-References for Deep Patterns
| Need | Where to look |
|------|----------------|
| Full Playwright patterns, POM, cloud | `playwright-skill` and [playwright-skill/reference/cloud-integration.md](../playwright-skill/reference/cloud-integration.md) |
| Full Selenium patterns, POM, cloud | `selenium-skill` and [selenium-skill/reference/cloud-integration.md](../selenium-skill/reference/cloud-integration.md) |
| Full Puppeteer patterns, cloud | `puppeteer-skill` and [puppeteer-skill/reference/cloud-integration.md](../puppeteer-skill/reference/cloud-integration.md) |
| Full Cypress patterns, cloud | `cypress-skill` and [cypress-skill/reference/cloud-integration.md](../cypress-skill/reference/cloud-integration.md) |
| TestMu capabilities (all frameworks) | [shared/testmu-cloud-reference.md](../shared/testmu-cloud-reference.md) |
## Validation Workflow
After generating migrated code:
1. Ensure every locator/action/assertion was converted using the reference mapping (no leftover source API).
2. Ensure lifecycle (setup/teardown) matches target framework.
3. If target is Playwright: use auto-wait assertions (`expect(locator).toBeVisible()`), not raw `waitForTimeout`.
4. If target is Cypress: no async/await with `cy` commands; use chain style.
5. If target is Selenium: use explicit `WebDriverWait`, never `Thread.sleep`.
## Reference Files Summary
| File | When to read |
|------|--------------|
| [reference/overview.md](reference/overview.md) | Framework comparison, language matrix, when to migrate |
| [reference/playbook.md](reference/playbook.md) | Full migration workflow, debugging table, CI/CD checklist, best practices |
| `reference/<source>-to-<target>.md` | Before converting any script for that pair |From LambdaTest/agent-skills, MIT.
More from LambdaTest/agent-skills
- 0.804score
rook-skill
LambdaTest
Use rook to test, evaluate, red-team or regression-check an AI agent the user owns, or to interpret saved Rook results.
SkillAFreshness: A★ 377Claude Code +9 - 0.713score
smartui-skill
TestMu AI
Generates SmartUI visual regression test configurations for screenshot comparison on TestMu AI cloud.
SkillBFreshness: B★ 377Claude Code +9 - 0.664score
hyperexecute-skill
TestMu AI
Operates HyperExecute end-to-end for TestMu AI/LambdaTest cloud test execution: analyze projects, create YAML, validate locally, run CLI jobs, debug failures…
SkillCFreshness: C★ 377Claude Code +9 - 0.659score
newman-report-analyzer
TestMu AI
Analyze Newman test run output, JSON reports, and JUnit XML results to summarize failures, diagnose root causes, identify slow requests, and suggest fixes.
SkillCFreshness: C★ 377Claude Code +9 - 0.659score
postman-openapi-converter
TestMu AI
Convert OpenAPI 3.x or Swagger 2.0 specs (YAML or JSON) into complete, import-ready Postman Collection v2.1 JSON files.
SkillCFreshness: C★ 377Claude Code +9 - 0.659score
postman-collection-generator
TestMu AI
Generate complete, import-ready Postman Collection v2.1 JSON files from natural language API descriptions or cURL commands.
SkillCFreshness: C★ 377Claude Code +9 - 0.659score
api-to-testcase-generator
TestMu AI
Automatically generate comprehensive test cases from API definitions, endpoint descriptions, OpenAPI/Swagger specs, Postman collections, or raw HTTP…
SkillCFreshness: C★ 377Claude Code +9 - 0.659score
api-analyzer
TestMu AI
Validates whether an API request is correct based on provided inputs (method, URL, headers, body, auth, query params).
SkillCFreshness: C★ 377Claude Code +9 - 0.659score
api-health-monitoring
TestMu AI
Designs health check endpoints, SLA definitions, alerting rules, observability strategies, and dashboard specs for any API.
SkillCFreshness: C★ 377Claude Code +9 - 0.659score
accessibility-skill
TestMu AI
Adds automated accessibility (a11y) testing to test suites on TestMu AI cloud by enabling WCAG scans through driver capabilities.
SkillCFreshness: C★ 377Claude Code +9 - 0.659score
api-sdk-generator
TestMu AI
Generates client SDK code, API wrapper libraries, request/response models, and language-specific usage patterns for any REST API.
SkillCFreshness: C★ 377Claude Code +9 - 0.659score
api-documentation
TestMu AI
Generate comprehensive, professional API documentation from API designs, endpoint definitions, OpenAPI/Swagger specs, route lists, or raw endpoint descriptions.
SkillCFreshness: C★ 377Claude Code +9
Compare and alternatives
Featured in
Signals
- Stars
- 377
- Forks
- 74
- Open issues
- 3
- Last commit (this folder)
- Apr 19, 2026 (6 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- Version
- 1.0
- License
- MIT
- Repository
- github.com/LambdaTest/agent-skills
- Website
- agentskillsforall.com/
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from TestMu AI
- 0.713score
smartui-skill
TestMu AI
Generates SmartUI visual regression test configurations for screenshot comparison on TestMu AI cloud.
SkillBFreshness: B★ 377Claude Code +9 - 0.664score
hyperexecute-skill
TestMu AI
Operates HyperExecute end-to-end for TestMu AI/LambdaTest cloud test execution: analyze projects, create YAML, validate locally, run CLI jobs, debug failures…
SkillCFreshness: C★ 377Claude Code +9 - 0.659score
postman-openapi-converter
TestMu AI
Convert OpenAPI 3.x or Swagger 2.0 specs (YAML or JSON) into complete, import-ready Postman Collection v2.1 JSON files.
SkillCFreshness: C★ 377Claude Code +9 - 0.659score
accessibility-skill
TestMu AI
Adds automated accessibility (a11y) testing to test suites on TestMu AI cloud by enabling WCAG scans through driver capabilities.
SkillCFreshness: C★ 377Claude Code +9 - 0.659score
postman-collection-generator
TestMu AI
Generate complete, import-ready Postman Collection v2.1 JSON files from natural language API descriptions or cURL commands.
SkillCFreshness: C★ 377Claude Code +9 - 0.659score
api-analyzer
TestMu AI
Validates whether an API request is correct based on provided inputs (method, URL, headers, body, auth, query params).
SkillCFreshness: C★ 377Claude Code +9
Cite this page
test-framework-migration-skill. Agent Mart. https://agentmart.dev/skills/lambdatest-test-framework-migration-skill (last updated 2026-10-24)