Playwright vs Selenium: the short version
Modern automation against the grid that still runs most enterprise browser infrastructure.
Playwright is headless Chromium, Firefox and WebKit with per-context proxies — the default engine for JavaScript-rendered scraping targets. It is maintained by Microsoft, runs on Node · Python · .NET · Java, and starts at Free.
Selenium is the WebDriver standard — every language binding, every browser, and Grid for horizontal scale. It comes from Selenium project (SeleniumHQ), runs on Java · Python · C# · Ruby · JS, and starts at Free.
Playwright is faster, less flaky and far easier to proxy per identity. Selenium wins on legacy breadth: real device clouds, ancient browser versions, and organisations with an existing Grid and years of test code.
| Criterion | Playwright | Selenium |
|---|---|---|
| Category | Headless browser | Headless browser |
| Vendor | Microsoft | Selenium project (SeleniumHQ) |
| Entry price | Free | Free |
| Licence | Apache 2.0 (open source) | Apache 2.0 (open source) |
| Platforms | Node · Python · .NET · Java | Java · Python · C# · Ruby · JS |
| Best for | Dynamic, JS-rendered and login-gated pages | Legacy stacks, cross-browser and antidetect-browser control |
| Our rating | 9.3/10 | 7.8/10 |
Scorecard: where each tool actually wins
We score every scraping tool on five axes that decide real projects: how quickly a new engineer becomes productive, how far the tool scales before it needs replacing, how well it survives anti-bot systems, how good the documentation and community are, and what you get per dollar. Playwright scores 9.3/10 overall against 7.8/10 for Selenium, but the aggregate hides the trade-off that matters to you.
The clearest gaps are on ease of use and anti-bot handling. Read those two rows first; the rest are close enough that team familiarity should decide.
| Criterion | Playwright | Selenium | Winner |
|---|---|---|---|
| Ease of use | 9 | 6 | Playwright |
| Scale | 6 | 7 | Selenium |
| Anti-bot handling | 7 | 5 | Playwright |
| Docs & community | 10 | 8 | Playwright |
| Value for money | 9 | 8 | Playwright |
Throughput, rendering and resource cost
Throughput decides your proxy bill as much as your compute bill: a tool that needs a full browser to read a page transfers ten to thirty times more bytes than one that parses HTML directly, and residential bandwidth is priced per gigabyte.
Playwright sustains 8 – 40 pages/min per worker and uses roughly 250 – 600 MB per context. Selenium sustains 5 – 25 pages/min per node at roughly 300 – 700 MB per session. On JavaScript-heavy targets, Playwright handles rendering like this: Full — Chromium, Firefox, WebKit Selenium: Full (any browser)
| Metric | Playwright | Selenium |
|---|---|---|
| Throughput | 8 – 40 pages/min per worker | 5 – 25 pages/min per node |
| JavaScript rendering | Full — Chromium, Firefox, WebKit | Full (any browser) |
| Memory footprint | 250 – 600 MB per context | 300 – 700 MB per session |
| Success profile | Strong once paired with residential IPs and stealth patches | Adequate; undetected-chromedriver improves it materially |
Pricing compared — and the cost the pricing page hides
Playwright: Apache-2.0. Real cost is CPU and RAM: a browser page uses 40–120× the memory of an HTTP request.
Selenium: Apache-2.0. Grid nodes and browser RAM are the cost centres.
Neither list price is your real cost. Add proxy bandwidth for every tool that does not bundle it, add the compute hours for anything that drives a browser, and add the engineering time that a self-hosted stack consumes every month. A framework that is free to license routinely costs more per delivered page than a paid unlocker once residential gigabytes and failed requests are counted honestly.
| Tool | Plan | Price | Includes |
|---|---|---|---|
| Playwright | Playwright (self-hosted) | $0 | All three engines, per-context proxies, tracing |
| Playwright | Container fleet | $40 – $600 / mo | 4–32 vCPU workers running 10–80 concurrent contexts |
| Playwright | Managed browser cloud | from $39 / mo | Browserbase, Browserless or Steel host the fleet for you |
| Selenium | Selenium WebDriver | $0 | All bindings, all browsers |
| Selenium | Selenium Grid (self-hosted) | $30 – $500 / mo | Hub + node fleet, session queue |
| Selenium | Managed grid (LambdaTest, BrowserStack) | from $15 / mo | Hosted browsers, parallel sessions |
Which proxies to pair with each tool
Proxy strategy is where most scraping projects leak money. Playwright expects: Per-browser and per-context HTTP/SOCKS5 proxies with username auth Attach the proxy per browser context so one identity keeps one exit for a whole session.
Selenium expects: Per-driver HTTP/SOCKS5 proxy via Options or a Selenium Wire interceptor Attach the proxy per browser context so one identity keeps one exit for a whole session.
Whichever tool you pick, tier your proxy network per domain rather than globally. Start every target on datacenter IPs, promote it to rotating residential when the block rate on that specific domain passes a few percent, use static ISP IPs for anything logged in, and reserve mobile exits for app-only endpoints. Teams that apply one proxy type to every target routinely overpay by five to ten times.
| Target profile | Proxy type | Typical price |
|---|---|---|
| Docs, open data, internal APIs | Datacenter | $0.30 – $2.00 / IP / mo |
| Commerce listings, forums, directories | Rotating residential | $1.00 – $8.00 / GB |
| Logged-in accounts and dashboards | ISP / static residential | $1.50 – $6.00 / IP / mo |
| App-only endpoints, hardest anti-bot | Mobile (4G/5G) | $4.00 – $20.00 / GB |
| Already blocked everywhere | Unlocker API | $0.50 – $3.00 / 1k requests |
Strengths and trade-offs
Neither tool is strictly better. The lists below are the differences that changed our recommendation during testing, not feature-sheet trivia.
- +Playwright — One API across three real browser engines
- +Playwright — Per-context proxies make rotation trivial
- +Playwright — Blocking images and fonts cuts bandwidth 60–80%
- +Playwright — Excellent documentation and tooling
- +Playwright caveat — Orders of magnitude more expensive per page than HTTP crawling
- +Playwright caveat — Default fingerprint is detectable without patching
- +Selenium — Runs against literally any browser, including antidetect builds
- +Selenium — Grid gives simple horizontal scale
- +Selenium — Every language has a mature binding
- +Selenium — Decades of institutional knowledge
- +Selenium caveat — Slowest of the browser drivers
- +Selenium caveat — Chromedriver fingerprints are widely blocklisted
Verdict: which one should you run in 2026?
Playwright is faster, less flaky and far easier to proxy per identity. Selenium wins on legacy breadth: real device clouds, ancient browser versions, and organisations with an existing Grid and years of test code.
Choose Playwright when: Greenfield scraping, high concurrency per host, auto-waiting instead of manual sleeps.
Choose Selenium when: You must reuse an existing Selenium Grid, target unusual browsers, or your automation is shared with a QA suite built on WebDriver.
A large share of production stacks run both. Using Playwright for the bulk of the crawl and Selenium for the fraction of domains it handles better is almost always cheaper than forcing one tool to cover every target, because the expensive path only gets used where it earns its price.
Playwright vs Selenium FAQs
Is Playwright better than Selenium for web scraping?+
Playwright is faster, less flaky and far easier to proxy per identity. Selenium wins on legacy breadth: real device clouds, ancient browser versions, and organisations with an existing Grid and years of test code.
Playwright vs Selenium: which is cheaper?+
Playwright starts at Free and Selenium starts at Free, but list price rarely decides total cost. Add proxy bandwidth, compute and maintenance: a free framework on residential proxies can cost more per delivered page than a paid API that bundles unblocking.
What proxies work best with Playwright?+
Per-browser and per-context HTTP/SOCKS5 proxies with username auth Attach the proxy per browser context so one identity keeps one exit for a whole session.
What proxies work best with Selenium?+
Per-driver HTTP/SOCKS5 proxy via Options or a Selenium Wire interceptor Attach the proxy per browser context so one identity keeps one exit for a whole session.
Can I use Playwright and Selenium together?+
Yes, and most mature stacks do. Run the cheaper tool across the bulk of your targets and route only the domains that fail to the more capable one. Per-domain routing keeps the expensive path small.
Which handles anti-bot protection better, Playwright or Selenium?+
On our anti-bot axis Playwright scores 7/10 and Selenium scores 5/10. Strong once paired with residential IPs and stealth patches versus Adequate; undetected-chromedriver improves it materially