Convert Playwright tests to and from Eggplant (SenseTalk), OpenTest.AI, Testers.AI Recorder, Testers.AI Dynamic, Selenium, and Cypress. Handles Playwright TypeScript/JavaScript (primary), Python, Java, and .NET bindings; `@playwright/test` runner idioms (`test`, `test.describe`, `test.beforeEach`, fixtures, `test.step`, `expect`). Use whenever the user wants to migrate a Playwright suite, translate a single spec, or round-trip Playwright through another framework. MANDATORY TRIGGERS — "convert Playwright", "Playwright to Selenium", "Playwright to Cypress", "Playwright to Eggplant", "migrate Playwright", "translate playwright spec", "port Playwright", "Playwright → OpenTest.AI", "Playwright to Testers.AI", or any mention of Playwright alongside any of the supported targets.
التثبيت
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
Convert Playwright tests to and from Eggplant (SenseTalk), OpenTest.AI, Testers.AI Recorder, Testers.AI Dynamic, Selenium, and Cypress. Handles Playwright TypeScript/JavaScript (primary), Python, Java, and .NET bindings; `@playwright/test` runner idioms (`test`, `test.describe`, `test.beforeEach`, fixtures, `test.step`, `expect`). Use whenever the user wants to migrate a Playwright suite, translate a single spec, or round-trip Playwright through another framework. MANDATORY TRIGGERS — "convert Playwright", "Playwright to Selenium", "Playwright to Cypress", "Playwright to Eggplant", "migrate Playwright", "translate playwright spec", "port Playwright", "Playwright → OpenTest.AI", "Playwright to Testers.AI", or any mention of Playwright alongside any of the supported targets.
Converts tests from Playwright to any supported target, and to Playwright from another framework. Defers orchestration, target semantics, and cross-framework rules to the open-testing-convert master skill.
When to use
Trigger when:
The user references a Playwright codebase, spec file, or snippet and asks to migrate or translate it.
The user asks to convert to Playwright from Selenium, Cypress, a Testers.AI recording, or a natural-language format (OpenTest.AI, Testers.AI Dynamic).
The user uploads a .spec.ts, .spec.js, .test.ts, .test.js, .py, .java, or .cs file containing @playwright/test, playwright.chromium.launch, page.locator, page.getByRole, await page.goto, etc.
A playwright.config.ts / playwright.config.js is present.
How to use
Read the master orchestrator first. Open ../open-testing-convert/SKILL.md and follow its step order (detect source → detect target → resolve language → delegate to this skill → read target primer → validate output).
Confirm target and language. The master's language-policy.md governs language choice (default: preserve source language unless the user requests otherwise). For Playwright the source language is one of TypeScript, JavaScript, Python, Java, or .NET/C#.
For Selenium reverse: consult ../open-testing-convert-selenium/reference/source-profile.md for emission shape in each language.
For Cypress: shared/wait-strategies.md §Cypress and shared/assertion-mapping.md Cypress column.
Read this skill's reference files:
reference/source-profile.md — what Playwright tests look like across bindings.
reference/extraction.md — how to extract canonical test intent from Playwright code.
reference/mappings.md — per-target translation tables and worked examples.
Read shared references as needed:open-testing-convert/reference/shared/{locator-mapping,wait-strategies,assertion-mapping,lifecycle-mapping}.md.
Emit the converted test(s) according to the target primer's Emission Checklist. Produce a preamble summarising: source file, detected binding/runner, target, language choice, any TODOs.
Scope
@playwright/test runner (v1.x) — primary.
Library-only usage (playwright without the test runner) — supported; lifecycle must be synthesized from the user's own scaffolding (Mocha/Jest/etc.).
Playwright for Python (playwright.sync_api / playwright.async_api) and pytest-playwright.
Playwright for Java (com.microsoft.playwright.*).
Playwright for .NET (Microsoft.Playwright.*).
Fixtures, parameterised projects, test.use({ ... }) overrides, and test.step() annotations.
Out of scope (delegate to sibling skills)
Playwright-BDD / playwright-bdd integration with Cucumber: use open-testing-convert-cucumber (it invokes this skill for the step-implementation layer).
Component testing (@playwright/experimental-ct-react and friends): emit as-is with a preamble flag; component-scoped behaviour does not map cleanly to Selenium/Cypress/Eggplant.
Quick reference: Playwright verbs and their canonical conversions