# RainProxy dashboard — CDP + самопроходящий Turnstile (2026-09-10) Подтверждённый рабочий паттерн для Vite-SPA с Cloudflare Turnstile, когда headless-инструменты висят. ## Симптом - dashboard.rainproxy.io — пустая белая страница в Playwright MCP, chrome-devtools MCP и browser-use: бандл `/assets/index.*.js` (~900KB) остаётся `pending` / `ERR_CONNECTION_RESET`, хотя `curl` качает тот же файл (200). Причина сетевая/браузерная, не сайтовая. - Firecrawl stealth рендерит страницу, но интеракт-сессии сгорают между вызовами ("Job not found"), лимит 2 concurrent jobs, MCP-таймаут 60s — многошаговые формы с ожиданием капчи через firecrawl_interact ненадёжны. ## Рабочее решение: реальный Chrome + CDP 1. `chrome.exe --remote-debugging-port=9333 --user-data-dir= --no-first-run ` через terminal(background=true). Fresh profile обязателен. 2. Playwright `connect_over_cdp("http://127.0.0.1:9333")` → `b.contexts[0]` → найти страницу по подстроке URL. 3. Заполнить поля по id (`#first_name`, `#email`, `#password`, `pg.check('#agree')`). 4. **Turnstile проходит САМ** в реальном Chrome — не кликать, просто поллить: `document.querySelector('[name=cf-turnstile-response]').value.length > 10` (каждые 2 сек, до 30 итераций; типично 10-20 сек). 5. Клик Register → редирект на /verify-email?vfemail=. ## Pitfalls - Селектор `button:has-text("Login")` может попасть на соседнюю "Login with Google" (содержит подстроку) → неожиданный редирект на accounts.google.com. Google OAuth требует РЕАЛЬНЫЙ пароль аккаунта; IMAP app-пароль не подходит. - Валидатор email отклоняет плюс-алиасы (`user+tag@gmail.com` → "Please enter a valid email"). - Gmail UTF-7 имена папок при русской локали: Spam = `"[Gmail]/&BCEEPwQwBDw-"`, All Mail = `"[Gmail]/&BBIEQQRP- &BD8EPgRHBEIEMA-"`. IMAP SEARCH с OR-критериями → BAD 'Could not parse command'; использовать SEARCH ALL / SINCE + фильтр в Python. - Verify-письмо RainProxy на Gmail dot-алиас не пришло за ~3 мин (2 отправки). Для массовых регов использовать отдельный почтовый пул (t-online.de), не Gmail-алиасы.