Zum Inhalt springen
SDETRole
SDETRole

Glossar · UI-Automatisierung

Headless Browser

Englisch: Headless browser

Auch genannt: Headless Browsers, Headless-Modus, Headless Mode, Headless Chrome

Definition

Eine echte Browser-Engine, die ohne sichtbares Fenster läuft und genutzt wird, um UI-Tests auf CI-Servern und anderen Maschinen ohne Bildschirm auszuführen.

Ein Headless Browser lädt Seiten, führt JavaScript aus, baut das DOM auf und verarbeitet Netzwerk-Requests genau wie ein normaler Browser, zeichnet aber nichts auf einen Bildschirm. Tests steuern ihn über dasselbe Automatisierungsprotokoll wie einen Browser mit Fenster. Da er keinen Display-Server braucht, ist er der Standardweg, UI-Tests in CI-Containern und auf Build-Agents auszuführen.

Beispiel

Playwright läuft standardmäßig headless. Ein sichtbares Fenster schalten Sie beim Debuggen gezielt ein:

npx playwright test            # headless
npx playwright test --headed   # show the browser
npx playwright test --ui       # interactive UI mode

In Selenium 4 fordern Sie den Headless-Modus über die Browser-Optionen an:

ChromeOptions options = new ChromeOptions();
options.addArguments("--headless=new");
WebDriver driver = new ChromeDriver(options);
FirefoxOptions options = new FirefoxOptions();
options.addArguments("-headless");
WebDriver driver = new FirefoxDriver(options);

Warum das wichtig ist

  • Er läuft überall. Build-Agents und Docker-Container haben meist kein Display, sodass Läufe mit Fenster einen virtuellen Framebuffer bräuchten.
  • Er braucht weniger Ressourcen als ein Browser mit Fenster, sodass Sie auf derselben Maschine mehr Worker parallel betreiben können.
  • Er ist ein echter Browser. Moderne Headless-Versionen von Chrome und Firefox nutzen dieselbe Rendering-Engine wie ihre Varianten mit Fenster, weshalb headless geschriebene Tests sich mit Fenster in der Regel gleich verhalten.

Häufige Stolperfallen

  • Unterschiedliche Viewports. Ein Headless Browser startet unter Umständen mit einer anderen Standardfenstergröße als Ihr Desktop-Browser. Setzen Sie den Viewport explizit, damit sich responsive Layouts einheitlich verhalten.
  • „Mit Fenster läuft’s, headless nicht.“ Meist liegt das am Timing, nicht am Headless-Modus selbst: Der Headless-Lauf ist schneller oder langsamer und legt einen fehlenden Wait offen. Zeichnen Sie bei Fehlschlägen einen Trace oder Screenshot auf, statt die CI auf Läufe mit Fenster umzustellen.
  • Blind debuggen. Aktivieren Sie Screenshots, Videos oder Traces für fehlgeschlagene Tests, damit Sie sehen, was der Headless Browser gesehen hat.
  • Headless mit „kein Browser“ verwechseln. Tools, die nur HTML abrufen, ohne JavaScript auszuführen, sind keine Headless Browser und können keine moderne Single-Page-App testen.

Tippen Sie, um SDETRole zu durchsuchen.

Volltextsuche mit Pagefind · läuft in Ihrem Browser Suchseite öffnen →