Zum Inhalt springen
Integrationen

Playwright mit Browserberg nutzen

Playwright verbindet sich über das Chrome DevTools Protocol mit Browserberg. Deine Selektoren, Fixtures, Assertions und dein Test-Runner bleiben unverändert.

Verbinden in einer Zeile

import { chromium } from 'playwright';

const browser = await chromium.connectOverCDP(
  `wss://browserberg.com/v1/connect?token=${process.env.BB_TOKEN}`);

const context = browser.contexts()[0];
const page = await context.newPage();

await page.goto('https://portal.example.de');
await page.getByLabel('Benutzername').fill('...');
await page.getByRole('button', { name: 'Anmelden' }).click();

Details

Protokoll Chrome DevTools Protocol über WebSocket
Playwright-Versionen 1.40 und neuer, Node und Python
Connect-Methode chromium.connectOverCDP / connect_over_cdp
Browser-Engine Chromium
Session-Start, p50-Ziel unter 1,5 Sekunden
Wo Sessions laufen EU-Bare-Metal (OVHcloud)

Stand: 2026-08-30

Was du wissen solltest

Bestehenden Context nutzen, keinen neuen


connectOverCDP hängt sich an einen laufenden Browser. Ein Aufruf von browser.newContext() erzeugt einen zweiten, leeren Context und verliert das wiederhergestellte Profil. Nimm browser.contexts()[0].

Profile überdauern Läufe


Cookies, localStorage und IndexedDB werden am Ende einer Session gesichert und zu Beginn der nächsten wiederhergestellt — der eingeloggte Zustand bleibt erhalten, ohne den Login zu wiederholen.

Playwrights eigener Browser-Download entfällt


Du startest keinen lokalen Browser, playwright install kann in der CI entfallen. Das spart meist mehr Build-Zeit als die Automatisierung selbst braucht.

Fragen, die wirklich gestellt werden

Brauche ich weiterhin `playwright install`?

Nein. Du hängst dich an einen entfernten Browser, statt einen lokalen zu starten — der Browser-Download kann aus deinem CI-Image entfallen. Das spart meist mehr Build-Zeit, als die Automatisierung selbst braucht.

Warum muss ich browser.contexts()[0] verwenden?

connectOverCDP hängt sich an einen Browser, der bereits einen Context hat, und dort liegt dein wiederhergestelltes Profil. Ein newContext() gibt dir einen zweiten, leeren — deine Cookies sind da, nur nicht in dem Context, den du steuerst.

Funktionieren Traces und Video-Aufzeichnung weiterhin?

Tracing funktioniert, es ist eine clientseitige Funktion. Video-Aufzeichnung setzt voraus, dass der Browser lokal Dateien schreibt — nutze stattdessen unser Session-Replay; es zeichnet dasselbe auf, ohne ein gemeinsames Dateisystem zu brauchen.

Zeig ein bestehendes Skript auf uns

Fünf Browser-Stunden kostenlos, keine Kreditkarte. Was lokal läuft, läuft hier mit einer geänderten Zeile.