The browser test framework you pick today is the one you will be rewriting specs for if you change your mind in two years. That makes "Playwright or Cypress?" less a feature question and more a question of which project will still be healthy when your suite has 800 tests in it.
Here is the number that frames the whole thing: in the last week of September 2026, playwright-core was downloaded more than 122 million times from npm. Cypress, Selenium and WebdriverIO together did not reach that. I wrote a longer breakdown with the full pricing research on DevToolLab; this is the condensed version.
Scope: Scripted Frameworks Only
This covers the frameworks where a person still writes the assertions: Playwright, Cypress, Selenium and WebdriverIO. AI agents that explore your app and generate their own tests (QA Wolf, mabl, Momentic and friends) are a separate category.
Two older options have mostly left the field. Angular deprecated Protractor on August 31, 2023 and archived the repo on July 29, 2024. TestCafe still ships (v3.7.6 landed July 7, 2026), but DevExpress has stepped back and new projects rarely start on it. GitHub stars as of September 28, 2026: Playwright 96,811, Cypress 51,034, Selenium 34,514, WebdriverIO 9,843.
Pull the Numbers Yourself
Comparison pages written by vendors tend to flatter the vendor. GitHub and npm both have public APIs, so a short Node script gets you honest figures:
const targets = [
["Playwright", "microsoft/playwright", "playwright-core"],
["Cypress", "cypress-io/cypress", "cypress"],
["Selenium", "SeleniumHQ/selenium", "selenium-webdriver"],
["WebdriverIO", "webdriverio/webdriverio", "webdriverio"],
]
const rows = await Promise.all(
targets.map(async ([name, repo, pkg]) => {
const [r, rel, dl] = await Promise.all([
fetch(`https://api.github.com/repos/${repo}`).then((x) => x.json()),
fetch(`https://api.github.com/repos/${repo}/releases/latest`).then((x) => x.json()),
fetch(`https://api.npmjs.org/downloads/point/last-week/${pkg}`).then((x) => x.json()),
])
return { name, stars: r.stargazers_count, version: rel.tag_name, weekly: dl.downloads }
})
)
console.table(rows)
On September 27, 2026 the weekly downloads came out at 122,713,314 for Playwright, 7,097,782 for Cypress, 3,214,599 for WebdriverIO and 2,260,853 for Selenium. Keep in mind the Playwright number includes every CI job that reinstalls the package, so it measures pulls, not people.
Playwright
Playwright is Microsoft's library for driving Chromium, Firefox and WebKit through one API, with bindings for TypeScript, JavaScript, Python, .NET and Java. The homepage now pitches it for AI agents too, via the Playwright MCP server, which hands coding agents accessibility snapshots instead of screenshots.
Auto-waiting is on by default, the trace viewer captures a timeline, network log and DOM snapshot for each failure, and the runner parallelizes without plugins. The gaps: no hosted results dashboard of its own, and its WebKit is not Apple's Safari, so some real-Safari bugs slip through. Apache 2.0, v1.63.0 (September 4, 2026). Microsoft's hosted option, now Playwright Workspaces under Azure App Testing, bills per test-minute; get a quote for your region.
Cypress
Cypress executes inside the browser's own event loop rather than over a remote protocol. That design is what makes its time-travel debugger possible, and it is also what limits it.
You get automatic retries, live reload on save, and flake detection on Cypress Cloud. You do not get easy multi-tab or multi-origin tests, and Safari and real mobile browsers were never supported. MIT, v16.1.0 (September 15, 2026). Cypress Cloud: free Starter (10 users, 500 results a month), Team at $67/month billed $799/year, Business at $267/month billed $3,199/year.
Selenium
Selenium started the category and now stewards the W3C WebDriver and WebDriver BiDi specs. It belongs to the Software Freedom Conservancy, not a company.
Because WebDriver drives each vendor's own driver (safaridriver for real Safari, geckodriver for Firefox), its browser fidelity is the best of the four. The price is that nothing waits for you: no built-in auto-waiting or retries, and no bundled trace viewer, so a Selenium suite nobody tuned is usually the flakiest one in the building. Apache 2.0, 4.49.0 (September 9, 2026). Scaling it means self-hosting Grid or paying a cloud vendor.
WebdriverIO
WebdriverIO sits under the OpenJS Foundation, same as Node.js. It speaks WebDriver and BiDi like Selenium, but with ergonomics closer to Playwright: auto-waiting, a plugin system for services and reporters, and Appium support for real phones.
The weak spot is community size. Fewer answers on Stack Overflow, fewer tutorials, and AI assistants that clearly saw less WebdriverIO code during training. MIT, v9.32.0 (September 20, 2026), no first-party cloud.
The Part That Costs Money: Cloud Grids
The frameworks are free. Real devices and a wide browser matrix in CI are not. Prices checked on September 28, 2026, all billed annually:
- TestMu AI (LambdaTest renamed itself on January 12, 2026): KaneAI plans at $17, $89 and $179 a month.
- BrowserStack: Live at $150 a month for five users; the "Team Ultimate" bundle at $375.
- Sauce Labs: Live Testing $39, Virtual Device Cloud $149, Real Device Cloud $199 a month.
The full post has the per-vendor details and a side-by-side table with licenses and Safari support.
Picking One Without a Second Migration
- Count origins per test. Checkout flows that bounce through a payment provider fight Cypress; Playwright and WebdriverIO handle it.
- Ask whether real Safari matters. Heavy iOS traffic points to Selenium or WebdriverIO, or a real-device cloud on top of Playwright or Cypress.
- Price grids by parallel jobs, not the entry tier. Forty parallel jobs per pull request will not fit anyone's cheapest plan.
- Factor in AI autocomplete. It is noticeably better for Playwright and Cypress than for WebdriverIO today.
If you land on Playwright or Cypress, the Playwright Config Generator and Cypress Config Generator will get you a working config file with per-browser projects and CI retries without digging through the docs.
My Take
New project, no legacy suite: Playwright, and the MCP server is a bonus if agents already touch your workflow. Happy Cypress team: stay, since the debugger is still the nicest authoring loop and rewrites rarely pay off. Real Safari and devices matter: WebdriverIO or Selenium on a cloud grid. Zero budget: self-hosted Selenium Grid or WebdriverIO against your own devices, the only real $0 path to cross-browser coverage.
The framework race is mostly settled. The cloud layer underneath is where things keep moving, so check your real parallel-run count before renewing any grid contract.



Top comments (0)