Latenode

Headless Browser mit Selenium verwenden: Einrichtung und Codebeispiele

Erfahren Sie, wie Sie Headless Browser mit Selenium für schnellere Automatisierung, Tests und Web Scraping ohne grafische Benutzeroberfläche einrichten und nutzen.

5 Min. Lesezeit
Selenium-Automatisierung mit Headless Browser und Code auf einem Bildschirm

Headless Browser ermöglichen schnellere automatisierte Webinteraktionen, da sie die grafische Benutzeroberfläche überspringen. Dadurch eignen sie sich ideal für Tests, Scraping und die Automatisierung von Formularen. Das sollten Sie wissen:

  • Warum den Headless-Modus verwenden?
    • Geschwindigkeit: 2–15× schneller als herkömmliche Browser.
    • Geringer Ressourcenverbrauch: Minimaler Speicher- und CPU-Verbrauch.
    • Anwendungsfälle: Automatisierte Tests, Web Scraping und CI/CD-Workflows.
  • Einrichtungsanforderungen:
    • Benötigte Tools: Python (v3.7+), Selenium, Browser-Treiber und kompatible Browser (Chrome v109+, Firefox, Edge).
    • Installation: Verwenden Sie pip install selenium und konfigurieren Sie den Headless-Modus mit einfachen Argumenten wie --headless=new.
  • Wichtige Tipps für den Erfolg:
    • Legen Sie feste Fenstergrößen fest, um konsistente Ergebnisse zu erzielen.
    • Verwenden Sie explizite Wartezeiten für dynamische Inhalte.
    • Debuggen Sie mit Screenshots und Logs.

Schneller Vergleich

FunktionHeadless-ModusStandard-Browser
Geschwindigkeit2–15× schnellerStandardgeschwindigkeit
RessourcenverbrauchGeringHoch
Visuelles FeedbackKeinesVollständige GUI
AutomatisierungEinfachere IntegrationKomplexere Einrichtung

Headless Browser sind leistungsstark für eine schnelle und effiziente Automatisierung. Folgen Sie den Einrichtungsschritten und Best Practices, um Ihren Workflow zu optimieren.

Selenium x Python zur Automatisierung mit Headless Browsern

Einrichtungsleitfaden für Selenium Headless Browser

So können Sie Selenium für die Automatisierung mit Headless Browsern einrichten.

Erforderliche Komponenten installieren

Sie benötigen die folgenden installierten Komponenten:

KomponenteVersionsanforderungenZweck
Python3.7 oder höherProgrammierumgebung
Selenium WebDriverNeueste stabile VersionFramework für Browserautomatisierung
Browser-TreiberNeueste stabile VersionSteuerungen für bestimmte Browser
WebbrowserChrome (v109+ für den Headless-Modus), Firefox, EdgeZielbrowser für die Automatisierung

Tipp: Stellen Sie sicher, dass die Browser-Treiber zu Ihren Browserversionen passen, um Kompatibilitätsprobleme zu vermeiden.

Python-Umgebung einrichten

Erstellen Sie eine dedizierte Python-Umgebung für Ihr Projekt:

python -m venv selenium_env
source selenium_env/bin/activate  # For Unix/macOS
selenium_env\Scripts\activate    # For Windows

„Selenium automatisiert Browser. Das ist alles!“ – selenium.dev [3]

Sobald Ihre Umgebung bereit ist, installieren Sie die erforderlichen Python-Bibliotheken.

Erforderliche Python-Bibliotheken

Verwenden Sie pip, um die benötigten Pakete zu installieren:

pip install selenium
pip install webdriver_manager  # Simplifies driver management

Für den Headless-Modus von Chrome (v109+) konfigurieren Sie ihn wie folgt:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument("--headless=new")
driver = webdriver.Chrome(options=chrome_options)

Unter Linux fügen Sie diese zusätzlichen Argumente hinzu, um häufige Probleme zu vermeiden:

chrome_options.add_argument("--no-sandbox")
chrome_options.add_argument("--disable-dev-shm-usage")

Denken Sie abschließend immer daran, die WebDriver-Instanz zu schließen, um Ressourcen freizugeben:

driver.quit()

Folgen Sie diesen Schritten, um Ihre Headless-Automatisierung mit Selenium einzurichten!

sbb-itb-23997f1

Headless Browser in Selenium verwenden

Einrichtung des Headless-Modus für Chrome

Aktivieren Sie für Chrome (v109+) den Headless-Modus mit dem Flag --headless, wie zuvor erläutert.

Einrichtung des Headless-Modus für Firefox

Um den Headless-Modus in Firefox mit GeckoDriver zu aktivieren, verwenden Sie den folgenden Code:

from selenium import webdriver
from selenium.webdriver.firefox.options import Options

firefox_options = Options()
firefox_options.add_argument("--headless")
driver = webdriver.Firefox(options=firefox_options)

Einrichtung des Headless-Modus für Edge

Edge unterstützt ebenfalls den Headless-Modus, und die Einrichtung ähnelt der von Chrome. Hier ist ein Beispiel:

from selenium import webdriver
from selenium.webdriver.edge.options import Options

edge_options = Options()
edge_options.add_argument("--headless")
driver = webdriver.Edge(options=edge_options)

„Headless ist ein Ausführungsmodus für Firefox und Chromium-basierte Browser. Er ermöglicht es Nutzern, automatisierte Skripte im Headless-Modus auszuführen, sodass das Browserfenster nicht sichtbar ist.“ – Diego Molina, Selenium [1]

Stellen Sie sicher, dass Sie nach Ihren Tests driver.quit() aufrufen, um Systemressourcen freizugeben.

Verwenden Sie diese browserspezifischen Konfigurationen zusammen mit den folgenden Best Practices, um eine reibungslose Automatisierung sicherzustellen. Im Folgenden erfahren Sie, wie Sie Ihren Workflow optimieren und häufige Probleme lösen.

Leitfaden für Tipps und Problemlösungen

Nachdem Sie Ihre Headless Browser eingerichtet haben, nutzen Sie diese Strategien für eine reibungslose und effektive Automatisierung.

Tipps für eine erfolgreiche Automatisierung

Optimieren Sie Ihren Automatisierungsprozess mit passenden Einstellungen und Anpassungen beim Timing.

  • Legen Sie eine feste Browserfenstergröße fest: Verwenden Sie 1920x1080, um ein konsistentes Rendering von Elementen auf allen Seiten sicherzustellen.
  • Behandeln Sie dynamische Inhalte mit expliziten Wartezeiten: So vermeiden Sie Timing-Probleme, wenn Elemente asynchron geladen werden. Hier ist ein Beispiel:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

element = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.ID, "dynamic-content"))
)
  • Integrieren Sie Scrollen für ausgeblendete Elemente: Dies ist besonders hilfreich bei Seiten, die beim Scrollen dynamisch Inhalte laden.
driver.execute_script("window.scrollBy(0, 100);")

Häufige Probleme beheben

Der Headless-Modus kann manchmal Probleme wie Fehler bei der Elementerkennung oder unerwartetes Verhalten verursachen. So gehen Sie diese an:

  • Element nicht gefunden: Stellen Sie sicher, dass die Seite vollständig geladen wurde. Sie können dies überprüfen, indem Sie die aktuelle URL verifizieren:
current_url = driver.current_url

Versuchen Sie außerdem, einen benutzerdefinierten User-Agent festzulegen oder eine Wiederholungslogik hinzuzufügen, um gelegentliche Fehler zu behandeln.

  • Klickereignisse funktionieren nicht: Wenn Standard-Klickmethoden fehlschlagen, verwenden Sie JavaScript, um die Klickaktion auszulösen:
element = driver.find_element(By.ID, "button-id")
driver.execute_script("arguments[0].click();", element)

Automatisierungsskripte debuggen

Wenn Headless-Skripte nicht wie erwartet funktionieren, ist Debugging entscheidend. Hier sind einige Methoden zur Fehlerbehebung:

  • Screenshots erstellen: Speichern Sie Screenshots an kritischen Punkten, um visuelle Probleme zu identifizieren.
driver.save_screenshot("debug_screenshot.png")
  • Logging implementieren: Fügen Sie detaillierte Logs hinzu, um die Ausführung des Skripts nachzuverfolgen und Fehler zu erkennen.
import logging
logging.basicConfig(level=logging.DEBUG)
logger = logging.getLogger(__name__)
logger.debug('Clicking element: button-1')
  • Remote-Debugging aktivieren: Verwenden Sie die Remote-Debugging-Funktion von Chrome, um den Browser während der Ausführung zu untersuchen.
chrome_options.add_argument("--remote-debugging-port=9222")

Best Practices für die Wartung

Damit Ihre Tests langfristig zuverlässig bleiben:

  • Speichern Sie Testdaten in externen Dateien, um Hardcoding zu vermeiden.
  • Verwenden Sie Assertions, um wichtige Kontrollpunkte in Ihren Skripten zu überprüfen.
  • Aktualisieren Sie Locator regelmäßig, damit sie Änderungen in der Webanwendung entsprechen.
  • Sorgen Sie für eine klare und konsistente Projektstruktur, um Updates und Debugging zu vereinfachen.

Zusammenfassung

Dieser Abschnitt bündelt die wichtigsten Vorteile der Headless-Automatisierung mit Selenium und liefert konkrete Schritte für den Einstieg.

Zentrale Anwendungsfälle und Vorteile

Die Headless-Automatisierung mit Selenium beschleunigt Tests – um bis zu 15× –, da das GUI-Rendering übersprungen wird. Dieser Ansatz reduziert den Ressourcenverbrauch und vereinfacht CI/CD-Workflows [2].

Headless Browser sind besonders nützlich für:

  • Kontinuierliche Integration: Einfache Integration in CI/CD-Pipelines ohne Abhängigkeit von GUIs.
  • Ressourceneffizienz: Weniger Speicher- und CPU-Verbrauch, sodass mehrere Tests gleichzeitig ausgeführt werden können.
  • Web Scraping: Effektives Extrahieren von Daten aus JavaScript-intensiven Websites.
  • Tests der Netzwerkleistung: Überwachung des Anwendungsverhaltens und der Antwortzeiten.

Nächste Schritte

Um diese Vorteile optimal zu nutzen, berücksichtigen Sie die folgenden Empfehlungen:

BrowserAm besten geeignet fürWichtiger Aspekt
Chrome HeadlessAllgemeine Automatisierung und TestsBreite Unterstützung und Kompatibilität
Firefox HeadlessBrowserübergreifende ValidierungHohe Standardkonformität

Tipps zur Implementierung:

  • Konfigurieren Sie WebDriver mit browserspezifischen Headless-Optionen.
  • Legen Sie passende Fenstergrößen und Timeouts fest.
  • Verwenden Sie Wartebedingungen für dynamische Inhalte.
  • Aktivieren Sie die Screenshot-Funktion für Debugging-Zwecke.
  • Integrieren Sie CI/CD-Tools wie Jenkins für optimierte Workflows.

„Headless-Browser-Tests sind hilfreich, um Text, Elemente oder andere statische Daten auf einer bestimmten Webseite zu überprüfen. Genau wie ein herkömmlicher Browser versteht ein Headless Browser HTML und CSS. Er kann auch JavaScript wie AJAX-Anfragen ausführen.“ [4]

References

FAQ

Frequently Asked Questions

Ein Headless Browser führt automatisierte Webinteraktionen ohne grafische Benutzeroberfläche aus. In Selenium aktivieren Sie den Headless-Modus über Browseroptionen, etwa --headless=new für Chrome ab v109, damit Skripte schneller und mit geringerem CPU- und Speicherverbrauch ausgeführt werden.

War das hilfreich? Teile es →

Geschrieben von

Vasiliy Datsenko

Leiter des Kundensupports

Vasiliy Datsenko ist Leiter des Kundensupports bei Latenode und ein produktorientierter Autor zum Thema Automatisierung. Seine Arbeit verbindet Kundengespräche, Workflow-Automatisierungsforschung, KI-Anwendungsfälle und praktische Produktschulungen für Teams, die echte Geschäftsprozesse automatisieren möchten.

Autorenprofil →

Faktencheck von

Oleg Zankov

CEO Latenode, No-code-Experte

Mit einer Philosophie, die auf Innovation, Problemlösung und Benutzererfahrung basiert, konzentriere ich mich darauf, Teams zu befähigen, maßgeschneiderte Integrationen zu erstellen und Arbeitsabläufe einfach und effizient zu automatisieren. Mit umfangreicher Erfahrung in den Bereichen Geschäftsentwicklung, Technologieunternehmertum und Softwareentwicklung erkannte ich den Bedarf an einer zugänglicheren, skalierbareren und anpassungsfähigeren Integrationslösung. So entstand Latenode.com. Mit unserer Plattform können Unternehmen die Macht der Technologie nutzen, ohne umfassende Programmierkenntnisse zu benötigen. Leidenschaftlich daran interessiert, eine Zukunft zu fördern, in der Technologie uns dient und nicht umgekehrt, ist es meine Mission, komplexe Prozesse zu vereinfachen. Ich glaube an die Demokratisierung der Technologie und daran, Teams mit den Werkzeugen auszustatten, um in einer zunehmend digitalen Welt zu innovieren, zu wachsen und erfolgreich zu sein.

Autorenprofil →

Weiterlesen