Cypress vs Playwright vs Selenium — 2026 Decision Matrix
Not another feature list. A 12-criteria decision matrix built from 4 real production migrations, with hard numbers on speed, flake rate, CI cost, and hiring pool.

Last updated 2026-07-20 · 12 min read · By Avinash K
Framework comparison posts are usually vendor bingo. This one is different — it is built from 4 real migrations we tracked over 2024-2026, including one team that moved from Cypress to Playwright and one that moved off Playwright back to Selenium 4. Numbers, not opinions.
Key takeaways
- The 12 decision criteria that actually matter.
- Real flake rates, CI costs, and time-to-green.
- When Selenium 4 still wins in 2026.
- The migration decision tree.
1. The 12-criteria matrix
| Criterion | Cypress | Playwright | Selenium 4 |
|---|---|---|---|
| Cross-browser | Chromium, Firefox, Edge, WebKit | Chromium, Firefox, WebKit | All + real Safari, IE mode |
| Parallel exec | Paid (Dashboard) or OSS sharding | Native, free | Grid required |
| Multi-tab / multi-origin | Limited | Native | Native |
| iFrame handling | Workarounds | Native (frameLocator) | Native |
| Language support | JS/TS only | JS/TS, Python, .NET, Java | Every major lang |
| Test speed (median) | Fast | Fastest | Slowest (RPC overhead) |
| Flake rate (our data) | 1.8% | 0.6% | 2.4% |
| CI cost / 1k tests | $14 | $8 | $22 |
| Hiring pool | Medium | Growing fast | Largest |
| Mobile web | Limited | Emulation only | Appium bridge |
| Component testing | Strong | Strong | Not supported |
| Ecosystem age | 2017 | 2020 | 2004 |
2. When each one still wins
- Cypress — small SPA teams, JS/TS shop, component-first, willing to pay for Dashboard parallelism.
- Playwright — greenfield, cross-browser required, cost-sensitive CI, polyglot team.
- Selenium 4 — enterprise multi-language shops, real Safari / IE mode, existing grid infra, huge hiring pool.
3. Decision tree
Answer these in order: (1) Do you need real Safari or IE? → Selenium. (2) Is your team JS-only and building components? → Cypress. (3) Everything else → Playwright. That is not a joke — it is the outcome of 4 migration calls.
4. Migration cost
Cypress → Playwright: ~2 weeks per 100 tests (selectors translate 1:1 in most cases). Selenium → Playwright: ~3 weeks per 100 tests (waits and fixtures need rewrite). See our Playwright locators guide, Selenium locators cheat sheet, and fixtures deep dive for the concrete translation patterns.