CDP liegt unter Playwright, Puppeteer und Ihrem Agenten
Ein JSON-RPC-Dialog über eine Websocket-Verbindung, gegliedert in Domänen, mit Befehlen, die Sie senden, und Ereignissen, die der Browser meldet. Jede höhere Bibliothek ist eine Hülle darum.
Der Aufbau, den man kennen sollte
Domänen, Befehle und Ereignisse
Die Oberfläche ist in Domänen wie Page, Network, Runtime, DOM und Target gegliedert. Sie senden Befehle und erhalten Antworten; davon getrennt sendet der Browser Ereignisse. Die meisten Verwirrungen entstehen, wenn eine Antwort für ein Ereignis gehalten wird.
Domänen müssen aktiviert werden
Mehrere Domänen senden nichts und ignorieren Konfiguration stillschweigend, bis ihr Aktivierungsbefehl aufgerufen wurde. Das ist der häufigste CDP-Fehler: Der Aufruf gelingt, und es geschieht dauerhaft nichts.
Targets und Sitzungen
Ein Browser ist ein Baum aus Targets, je eines für Tab, Worker und ausgelagerten Frame. Das Anhängen liefert eine Sitzungskennung, die folgende Befehle einordnet. Deshalb wirkt ein Befehl, der in einem Tab funktionierte, in einem anderen wirkungslos.
Versioniert durch den Browser, nicht durch eine Norm
Die stabilen Domänen sind dokumentiert und ändern sich langsam; die experimentellen können sich zwischen Chrome-Versionen ohne Ankündigung ändern. Auf einer experimentellen Domäne zu bauen heißt, dem Veröffentlichungstakt von Chrome zu folgen.
CDP im Verhältnis zu den darüberliegenden Schichten
| Ebene | Dann sinnvoll | |
|---|---|---|
| Rohes CDP | Das Protokoll selbst | Eine Domäne fehlt in jeder Bibliothek |
| Puppeteer | Dünne Hülle, zuerst Chromium | CDP mit angenehmer Bedienung |
| Playwright | Dickere Hülle, mehrere Engines | Automatisches Warten und andere Engines |
| Selenium WebDriver | W3C-Norm, kein CDP | Breite, langlebige Kompatibilität |
| WebDriver BiDi | Normierter bidirektionaler Nachfolger | CDP-ähnliche Ereignisse, portabel |
| Agenten-Framework | Ein Modell über einer dieser Schichten | Entscheidungen gehören nicht in Ihren Code |
Stand: 2026-08-31 · Angaben zu Wettbewerbern stammen von deren veröffentlichten Preisseiten zum genannten Stand.
Einen wirkungslosen CDP-Aufruf eingrenzen
In dieser Reihenfolge. Die ersten beiden Punkte erklären die meisten Fälle.
-
Aktivierung der Domäne prüfen
Rufen Sie den Aktivierungsbefehl der Domäne vor jeder Konfiguration auf. Mehrere Befehle werden bei inaktiver Domäne angenommen und verworfen, ohne Hinweis in der Antwort.
-
Zielsitzung des Befehls prüfen
Ein an das Browser-Target gesendeter Befehl erreicht kein Seiten-Target. Wirkt nichts, ist die Sitzungskennung das Erste, was auszugeben ist.
-
Reihenfolge zur Navigation prüfen
Nach Navigationsbeginn angewandte Konfiguration kann im scheidenden Dokument landen. Was für die nächste Seite gelten soll, muss vor dem Navigationsbefehl registriert sein.
-
Den rohen Verkehr ansehen
Jede Bibliothek kann die zugrundeliegenden Protokollnachrichten protokollieren. Sie zu lesen ist meist schneller, als über die Absicht der Hülle nachzudenken.
-
Für echte Daten Werte anfordern
Objektvorschauen sind bewusst verlustbehaftet und kürzen tiefe Strukturen. Wenn Sie den tatsächlichen Wert brauchen und nicht nur eine Ansicht, fordern Sie ihn als Wert an.
Häufige Fragen
Ist CDP eine Norm?
Nein. Es ist das eigene Protokoll von Chromium, dokumentiert, aber vom Chromium-Projekt kontrolliert. WebDriver BiDi ist der W3C-Ansatz, dieselben Fähigkeiten engine-übergreifend zu normieren, und die Richtung, in die sich das Ökosystem bewegt. CDP bleibt gleichwohl das, was die meisten Werkzeuge heute sprechen.
Lässt sich CDP über das Netz nutzen?
Ja, und genau das ist ein gehosteter Browser-Endpunkt: Die Websocket-Verbindung liegt lediglich anderswo. Die Folge ist Latenz je Befehl. Deshalb wirken gesprächige Skripte entfernt langsamer, während gebündelte kaum betroffen sind.
Unterstützt Firefox CDP?
Teilweise, über eine Kompatibilitätsschicht, und der Umfang ist unvollständig. Wo engine-übergreifende Unterstützung zählt, ist WebDriver BiDi oder die Abstraktion von Playwright die tragfähigere Wahl, statt CDP als portabel anzunehmen.
Sollte ich CDP direkt schreiben?
Selten, und nur für etwas, das die darüberliegende Bibliothek nicht bereitstellt. Die Hüllen existieren, weil rohes CDP die Verwaltung von Sitzungen, Reihenfolge und Aktivierung von Hand verlangt, und die meisten Fehler in direktem CDP-Code liegen in genau diesen drei Bereichen.
Ein CDP-Endpunkt, den Sie nicht betreiben mussten
Verbinden Sie Playwright oder Puppeteer mit einer entfernten Websocket-Verbindung und behalten Sie Ihren Code.