首页/DevOps/migrate
M

migrate

by @alirezarezvaniv1.0.0
4.4(62)

交互式从 Cypress 或 Selenium 迁移到 Playwright,逐文件转换测试套件,保持测试逻辑和结构

playwrightmigrationtestingtest-automationcypressGitHub
安装方式
npx skills add alirezarezvani/claude-skills --skill migrate
compare_arrows

Before / After 效果对比

1
使用前

手动完成交互式从 Cypress 或 相关任务,需要反复操作和确认,整个过程大约需要103小时,容易出错且效率低下

使用后

使用该 Skill 自动化处理,智能分析和执行,4小时内完成全部工作,准确率高且流程标准化

description SKILL.md

migrate

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 or cypress.config.ts → Cypress

  • selenium, webdriver in package.json deps → Selenium

  • .py test files with selenium imports → Selenium (Python)

2. Assess Migration Scope

Count files and categorize:

Migration Assessment:
- Total test files: X
- Cypress custom commands: Y
- Cypress fixtures: Z
- Estimated effort: [small|medium|large]

Size Files Approach

Small (1-10) Convert sequentially Direct conversion

Medium (11-30) Batch in groups of 5 Use sub-agents

Large (31+) Use /batch Parallel conversion with /batch

3. Set Up Playwright (If Not Present)

Run /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:

cy.visit(url)           → page.goto(url)
cy.get(selector)        → page.locator(selector) or page.getByRole(...)
cy.contains(text)       → page.getByText(text)
cy.find(selector)       → locator.locator(selector)
cy.click()              → locator.click()
cy.type(text)           → locator.fill(text)
cy.should('be.visible') → expect(locator).toBeVisible()
cy.should('have.text')  → expect(locator).toHaveText(text)
cy.intercept()          → page.route()
cy.wait('@alias')       → page.waitForResponse()
cy.fixture()            → JSON import or test data file

Cypress custom commands → Playwright fixtures or helper functions Cypress plugins → Playwright config or fixtures before/beforeEachtest.beforeAll() / test.beforeEach()

Selenium → Playwright

Load selenium-mapping.md for complete reference.

Key translations:

driver.get(url)                    → page.goto(url)
driver.findElement(By.id('x'))     → page.locator('#x') or page.getByTestId('x')
driver.findElement(By.css('.x'))   → page.locator('.x') or page.getByRole(...)
element.click()                    → locator.click()
element.sendKeys(text)             → locator.fill(text)
element.getText()                  → locator.textContent()
WebDriverWait + ExpectedConditions → expect(locator).toBeVisible()
driver.switchTo().frame()          → page.frameLocator()
Actions                            → locator.hover(), locator.dragTo()

5. Upgrade Locators

During conversion, upgrade selectors to Playwright best practices:

  • #idgetByTestId() or getByRole()

  • .classgetByRole() or getByText()

  • [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:

npx playwright test <converted-file> --reporter=list

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

Weekly Installs239Repositoryalirezarezvani/…e-skillsGitHub Stars6.3KFirst SeenMar 5, 2026Security AuditsGen Agent Trust HubPassSocketPassSnykPassInstalled oncodex228gemini-cli226kimi-cli225github-copilot225cursor225amp225

forum用户评价 (0)

发表评价

效果
易用性
文档
兼容性

暂无评价,来写第一条吧

统计数据

安装量1.4K
评分4.4 / 5.0
版本1.0.0
更新日期2026年3月23日
对比案例1 组

用户评分

4.4(62)
5
0%
4
0%
3
0%
2
0%
1
0%

为此 Skill 评分

0.0

兼容平台

🔧Claude Code

时间线

创建2026年3月23日
最后更新2026年3月23日