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 · playwright-common-sites-v1-20260524
adapter: playwright.sync_api.chromium.goto
| Target | Result | Detail | Latency |
|---|---|---|---|
| amazon.comamazon_search_laptop | fail | expected 200, got 503 | 841 ms |
| walmart.comwalmart_search_laptop | fail | block marker: “Robot or human” | 2.9 s |
| ebay.comebay_search_laptop | fail | expected 200, got 403 | 655 ms |
| aliexpress.comaliexpress_search_laptop | fail | block marker: “Robot” | 4.7 s |
| target.comtarget_search_laptop | pass | status 200 | 4.2 s |
| booking.combooking_search_paris | fail | expected 200, got 202 | 2.9 s |
| airbnb.comairbnb_search_paris | fail | block marker: “captcha” | 3.7 s |
| tripadvisor.comtripadvisor_restaurants_paris | fail | expected 200, got 403 | 1.1 s |
| expedia.comexpedia_hotels_paris | fail | expected 200, got 429 | 1.9 s |
| zillow.comzillow_homes_for_sale | fail | expected 200, got 403 | 2.7 s |
| realtor.comrealtor_new_york | fail | expected 200, got 429 | 2.2 s |
| rightmove.co.ukrightmove_london | pass | status 200 | 3.5 s |
| indeed.comindeed_python_remote | fail | expected 200, got 403 | 715 ms |
| yelp.comyelp_sf_restaurants | fail | expected 200, got 403 | 953 ms |
| trustpilot.comtrustpilot_amazon | fail | expected 200, got 403 | 3.1 s |
| newyork.craigslist.orgcraigslist_nyc_bike | fail | expected 200, got 403 | 1.4 s |
| finance.yahoo.comyahoo_finance_aapl | fail | redirected to consent.yahoo.com | 1.7 s |
| coinmarketcap.comcoinmarketcap_home | fail | block marker: “captcha” | 3.4 s |
| reddit.comreddit_webscraping | fail | expected content missing | 921 ms |
| youtube.comyoutube_search_scraping | fail | block marker: “captcha” | 4.3 s |
| en.wikipedia.orgwikipedia_web_scraping | pass | status 200 | 1.5 s |