Previous approach (newContext per run) was still detected via navigator.plugins=0 and window.chrome=undefined. Two fixes: 1. launchPersistentContext writes a real browser profile to disk — cookies, cache and fingerprint survive restarts so Cloudflare trusts the same "user" 2. addInitScript patches plugins, chrome runtime, webdriver and languages on every page, hiding remaining headless Chromium signals recycleBrowserContext now just closes stale pages (profile stays on disk). closeBrowser just closes the browser process — profile already persisted. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Description
No description provided
Languages
JavaScript
100%