Everyone has an opinion about which browser automation tool is “best.” Patchright is undetectable. Camoufox beats everything. Playwright is fine with the right settings.

But most of these claims are based on one site, one test, or just vibes.

So I built a benchmark tool to actually test them — same conditions, same protection systems, measurable results. Here’s what I found.


What I tested

The benchmark runs each engine against 10 real protection systems:

  • Cloudflare
  • DataDome
  • Amazon
  • Google Search
  • Ticketmaster (Imperva)
  • Akamai
  • PerimeterX / HUMAN Security
  • Kasada
  • Reddit
  • More being added

And 23 browser engines across different configurations:

EngineType
PatchrightPlaywright-based, open-source
CamoufoxPlaywright-based (Firefox), open-source
CloakBrowserPlaywright-based, open-source
tf-playwright-stealth (Chrome + Firefox)Playwright-based, open-source
Playwright (Chrome + Firefox, headed + headless)Standard, open-source
NoDriverCDP-based, open-source
ZenDriverNoDriver-based, open-source
SeleniumBase CDPSelenium-based, open-source
SeleniumStandard, open-source
AdsPowerAnti-detect browser, proprietary

Each engine gets a clean proxy IP so the results reflect the engine’s capabilities, not IP reputation.


Overall bypass rates

Browser engine bypass rates across Cloudflare, DataDome, Akamai, Kasada, and other protection systems

Here’s the full table (results as of the time this article was written — for the latest data, check the GitHub repo):

EngineBypass Rate
patchright100%
cloakbrowser90%
camoufox_headless90%
nodriver-chrome80%
adspower80%
seleniumbase-cdp-chrome80%
adspower_headless70%
tf-playwright-stealth-firefox70%
tf-playwright-stealth-firefox_headless70%
zendriver-chrome70%
cloakbrowser_headless60%
tf-playwright-stealth-chromium60%
playwright-chrome60%
playwright-firefox_headless60%
playwright-firefox60%
zendriver-chrome_headless60%
tf-playwright-stealth-chromium_headless50%
selenium-chrome (no proxy)50%
playwright-chrome_headless40%
nodriver-chrome_headless40%
patchright_headless40%
camoufox (headed)30%
selenium-chrome_headless (no proxy)30%

A few things stand out from these numbers.


What the results actually mean

Patchright headed: 100%

This is the standout result. Patchright passed every single protection system tested. It’s a patched build of Playwright that removes automation signals at the browser level, not just in JavaScript. That deeper patching is why it scores so much higher than playwright-stealth on Chromium (60%).

If you’re picking one tool for serious scraping work, Patchright headed is currently the best open-source option by this measure.

Camoufox headless 90%, headed 30%

This looks weird and it is. The headed version of Camoufox scored low because it had proxy detection issues during this particular test run — the IP leaked or wasn’t being routed correctly. That dragged the overall score down. The headless version didn’t have that issue and scored 90%.

So Camoufox is genuinely good, the headed result here is misleading.

Standard Playwright: 40-60%

Playwright without any stealth patches hits 60% headed and 40% headless. That’s not terrible — it means Playwright alone is fine for sites without serious anti-bot protection. For the harder targets (Cloudflare, DataDome), it fails.

Headless is consistently worse

Every engine scores lower in headless mode compared to headed. Headless Chrome behaves differently from headed Chrome at a low level, and detection systems have learned to check for those differences. This is why proper stealth tools matter more for headless deployments.

Selenium without proxies: 50%

Selenium was tested without proxies in this benchmark because it’s essentially deprecated at this point. The 50% result is on a clean machine IP, which is different from all the other engines. Take the comparison with a grain of salt.


Memory and CPU

Bypass rate isn’t everything. If you’re running hundreds of concurrent sessions, resource usage matters a lot.

EngineMemory (MB)CPU (%)
adspower_headless1234.9
adspower1307.0
playwright-chrome_headless5177.4
tf-playwright-stealth-chromium_headless5228.2
zendriver-chrome_headless81821.5
tf-playwright-stealth-chromium91328.6
cloakbrowser_headless93627.2
playwright-chrome1,10328.5
patchright1,31453.3
camoufox_headless1,31888.6
nodriver-chrome1,38947.4

AdsPower has the lowest resource usage by far — 123 MB headless — but it’s a proprietary paid tool that requires the desktop app running locally. It’s not something you can deploy to a Linux server easily.

Among open-source options, Playwright headless uses the least memory (517 MB) and CPU (7.4%). If you need to run a lot of parallel sessions, that difference matters. Patchright uses 1,314 MB — more than 2x — because of the additional browser-level patches.

Camoufox headless has the highest CPU at 88.6%. That’s the cost of all the fingerprint spoofing it does per page.


reCAPTCHA scores

The benchmark also checks each engine’s reCAPTCHA v3 score using antcpt.com/score_detector. A score of 0.9 means Google considers the browser to be human-like. Below 0.3 and you’ll get served hard CAPTCHAs.

Almost every engine scored 0.9 — including standard Playwright. This might surprise you. It means Playwright alone looks human to Google’s reCAPTCHA specifically, even if it gets blocked by Cloudflare and other systems.

Three engines returned nan (no score at all): camoufox headed, zendriver, and zendriver headless. The antcpt.com site simply didn’t load during those test runs, not necessarily a reflection of the engine’s quality.


How to run the benchmark yourself

The full benchmark tool is open-source: github.com/techinz/browsers-benchmark

git clone https://github.com/techinz/browsers-benchmark.git
cd browsers-benchmark
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate
pip install -r requirements.txt
playwright install
python main.py

You’ll need proxies for accurate results. The tool reads them from a documents/proxies.txt file. One proxy per engine tested. If you run without proxies, your IP’s reputation affects the results — if your IP is already flagged by Cloudflare, even Patchright will fail.

The tool generates a results/ folder with:

  • summary.md — readable report with all the tables
  • benchmark_results.json — raw data
  • media/bypass_dashboard.png — the visualization shown above
  • Screenshots of each tested target per engine

Which engine should you use?

Based on the benchmark data:

For maximum bypass rate: Patchright headed (100%). Best open-source option right now.

For headless with high bypass rate: Camoufox headless (90%) or CloakBrowser headless (60%). Camoufox uses more CPU.

For high-volume scraping where memory matters: tf-playwright-stealth Chromium headless (50% bypass, 522 MB). Lower bypass rate but much lighter.

For basic sites without serious anti-bot: Standard Playwright headless (40%). It’s fast, lightweight, and good enough when you’re not hitting Cloudflare.

For maximum reliability regardless of cost: AdsPower (80% bypass, 123 MB memory). But it’s proprietary and not server-deployable.

There’s no single best choice. It depends on what you’re scraping, your budget, and your infrastructure constraints.


Limitations of the benchmark

A few things worth knowing:

  • Results depend heavily on proxy quality. Residential proxies from different providers behave differently.
  • Anti-bot systems update constantly. A 100% bypass rate today might be 80% in three months.
  • “Bypass rate” means passing the access check — it doesn’t guarantee you can complete a complex multi-step flow without getting blocked mid-session.
  • The benchmark tests each engine in isolation. In production, behavioral patterns (how fast you click, how many pages you hit per hour) matter just as much as the browser fingerprint.

What’s coming

The benchmark is actively maintained. Planned additions:

  • More protection systems
  • Puppeteer-based engines
  • Playwright with different stealth configurations
  • Session persistence tests

If you want to suggest an engine or protection system to add, open an issue on GitHub: github.com/techinz/browsers-benchmark