Usabletested 2026-05-24 · public-tough-v1 · proxy: none

Playwright

A rendering baseline, not a stealth tool.

Playwright is the modern browser-automation standard, and it is often reached for as a scraping upgrade: real browser, real JavaScript, surely better results than an HTTP client. Our run says otherwise for protected sites: stock headless Chromium (Playwright 1.60.0, chromium.goto) passed 3 of 21 — Target, Rightmove, and Wikipedia. curl_cffi, a plain HTTP client with a Chrome TLS fingerprint, passed 5 on the same day.

The reason is visible in the failure log: anti-bot vendors identify stock headless Chromium instantly. eBay, Tripadvisor, Zillow, Indeed, Yelp, Trustpilot, and Craigslist returned hard 403s in roughly a second; Walmart, AliExpress, Airbnb, CoinMarketCap, and YouTube served robot checks or captchas; Amazon answered 503. Reddit loaded a shell page without the expected content. Each page also cost 1–5 seconds instead of an HTTP client's milliseconds.

None of this makes Playwright bad at its actual job. The automation is rock solid, and its debugging story — screenshots, console, tracing — produced the best failure artifacts of the test. It renders JavaScript sites that no HTTP client can touch. It just doesn't hide you.

Test conditions

21 real public sites (public-tough-v1), 2026-05-24, no proxy, single residential IP, Linux. Deterministic validators: expected status code plus required and forbidden content markers. Pass rates measure the tool and the network position together. Without a proxy, results reflect how each site's protections treat one plain residential connection as much as the tool itself.

What worked

  • +Rendered and passed Target, Rightmove, and Wikipedia reliably.
  • +Best-in-test debugging artifacts: screenshots, console logs, structured errors for every attempt.
  • +Executes real JavaScript — the capability HTTP clients fundamentally lack.

What failed

  • 3/21 — stock headless Chromium is fingerprinted on arrival by every major anti-bot vendor.
  • 1–5 s per page and a full browser process, for a lower pass rate than a good HTTP client.
  • Reddit served an empty shell — rendering alone doesn't guarantee content.

When to use it

JavaScript-heavy sites without aggressive protection, automation flows, and anywhere you need evidence of what actually rendered. For protected sites, combine with proxies and a stealth layer — stock headless is the detectable baseline.

Excellent browser automation; zero camouflage. Know which problem you have.

Run evidence

Every attempt below is backed by saved artifacts: request/response metadata, body content, and (for browsers) screenshots. Raw JSON and artifacts live in the runner data directory.

Run data not available in this build.