Browser-Automation mit Playwright und CDP — Der Praxis-Guide

Browser-Automation ist das Schweizer Taschenmesser für Entwickler. Ich hab unzählige Stunden mit Playwright und Chrome DevTools Protocol verbracht — hier ist, was ich gelernt hab.

Warum CDP statt Standard-Playwright?

Playwright kann Browser eigenständig starten, aber das startet eine FRISCHE Browser-Instanz. Keine Cookies, keine Logins. Wenn du mit Google-Diensten arbeitest, brauchst du deine eingeloggte Session. Deshalb CDP.

# Chrome mit CDP-Port starten (Windows):"C:/Program Files/Google/Chrome/Application/chrome.exe" --remote-debugging-port=9223 --user-data-dir="C:/chrome_cdp_profile"# Playwright verbindet sich zum LAUFENDEN Chrome:from playwright.async_api import async_playwrightbrowser = await p.chromium.connect_over_cdp("http://127.0.0.1:9223")page = await browser.contexts[0].new_page()

Die 3 häufigsten Playwright-Fallen

Falle 1: networkidle bei SPAs. Single-Page-Applications haben ständig WebSocket-Verbindungen. networkidle wartet auf 0 Aktivität — das passiert NIE. Lösung: domcontentloaded + manuelles sleep.

Falle 2: Elemente in Shadow DOM. Google Play Console nutzt Web Components. CSS-Selektoren greifen nicht durch Shadow-DOM. Lösung: page.evaluate() oder rekursive Suche.

Falle 3: Screenshots bei unvollständigen Seiten. full_page=True bei laufender Seite → Timeout. Erst Text-Content prüfen, dann Screenshot.

Mein Playwright-Cheat-Sheet: page.inner_text("body") für Text-Extraktion, page.click("text=Save") für Buttons, page.evaluate("document.title") für JS-Werte.

Der ganze Trick: Navigieren, Warten, Text-Extraktion, Entscheidung. Kein DOM-Parsing, kein CSS-Selektor-Raten. Einfach den Text lesen und reagieren.