127 / 139 · 13 Browser Automation with Playwright · Migration and Comparison← prev⊞ allnext →☰ Read as one page
15.2Framework Comparison
| Feature | Playwright | Selenium | Cypress |
|---|---|---|---|
| Architecture | WebSocket to browser | HTTP to driver process | Runs inside browser |
| Languages | TS/JS, Python, Java, C# | Java, Python, JS, C#, Ruby, Go | JavaScript/TypeScript only |
| Browsers | Chromium, Firefox, WebKit | Chrome, Firefox, Safari, Edge, IE | Chromium, Firefox, WebKit (limited) |
| Auto-waiting | Built-in | Manual (explicit/implicit waits) | Built-in |
| Network mocking | Native page.route() |
Proxy-based (complex setup) | Native cy.intercept() |
| Parallel execution | Built-in workers + sharding | Selenium Grid (separate infra) | Cypress Cloud (paid) or DIY |
| Multi-tab support | Native | Native | Not supported |
| iFrame support | frameLocator() |
switch_to.frame() |
cy.iframe() (plugin) |
| Test runner | Built-in | Bring your own | Built-in (Mocha-based) |
| Mobile testing | Device emulation | Appium integration | Device emulation |
| Debugging | Trace Viewer, UI Mode | Browser DevTools | Time-travel debugger |
Where Each Framework Stands (July 2026)
- Playwright is on 1.61 and ships first-party AI tooling: Test Agents (planner / generator / healer) and a token-efficient CLI for coding agents (covered in AI-Assisted Testing).
- Selenium is still on the 4.x line (≈4.41) — Selenium 5 has not shipped; its headline feature is expected to be high-level WebDriver BiDi APIs. Low-level BiDi already works in Selenium 4 (~70% of the CDP surface), and WebdriverIO v9 defaults to BiDi.
- Cypress v15 added
cy.prompt()natural-language test authoring, Cypress Studio (record-and-refine), and self-healing capabilities — making Cypress a real player in AI-assisted authoring.