Playwright hitting Cloudflare or captcha on first navigation usually means IP reputation, TLS fingerprint, or automation signals — not a selector bug.

Challenge identification

What you seeLikely causeFirst fix
“Checking your browser” pageTLS + IP scoringResidential proxy; real browser profile
Turnstile / checkboxBehavioral + fingerprintAnti-detect profile; warm-up browsing
Slider / rotate puzzleBehavior scoringHuman-like mouse path; slower pace
403 empty responseWAF rule or IP banRotate IP; reduce request rate

Playwright-specific fixes

  1. Stop using launch() headless — use connect_over_cdp to Multilogin or similar profile (API example).
  2. Verify navigator.webdriver is false inside the page context.
  3. Match proxy country to Intl.DateTimeFormat timezone.
  4. Add 3–8s random delay before interactions; scroll page first.
  5. Cap concurrent pages per profile — high parallelism triggers scoring.

When captcha solvers help (and when they don't)

Solvers address the widget layer. If IP or fingerprint is already flagged, solving one captcha often leads to immediate re-challenge. Fix identity layer first: fingerprint checklist.

FAQ

Why does Playwright trigger Cloudflare immediately?
Usually IP reputation, TLS fingerprint, or automation signals — not a selector bug. Datacenter IPs and headless launch() are common triggers.
Should I use a captcha solver first?
Fix identity layer first: proxy geo alignment, anti-detect profile, and fingerprint audit. Solvers only help when the underlying session is not already flagged.
How do I connect Playwright to Multilogin?
Launch profile via API, read CDP WebSocket URL, use connect_over_cdp. See our API Python guide.

Disclosure: Affiliated with Multilogin.