Das passiert häufig, wenn ChromeDriver oder Chrome mit einer speziellen Testumgebung (z. B. einer IDE) oder einem Continuous-Build-System (z. B. Jenkins) ausgeführt wird.
Starten Sie die gleiche Chrome-Binärdatei, die in Ihrem Test verwendet wird, über eine normale Benutzer-Eingabeaufforderung. Prüfen Sie, welche Chrome-Binärdatei in der Datei chromedriver.log
verwendet wird. Wenn Sie Chrome spezielle Befehlszeilenoptionen oder ‑argumente übergeben, müssen Sie auch diese angeben. Wenn Chrome nicht richtig gestartet wird, müssen Sie die Installation von Chrome korrigieren. Versuchen Sie noch einmal, das Programm zu installieren.
Angenommen, Sie können Chrome über eine Eingabeaufforderung ausführen, sollten Sie als Nächstes prüfen, ob das gleiche Problem auftritt, wenn Sie den Test in einer Testumgebung ausführen. Am besten starten Sie das Test-Binary oder ‑Script direkt über die Eingabeaufforderung eines normalen Nutzers. Prüfen Sie, ob Sie Chrome direkt über Ihren Test starten können, ohne WebDriver oder ChromeDriver zu verwenden. In Java können Sie beispielsweise die ProcessBuilder API verwenden, um die Chrome-Binärdatei direkt zu starten. Wenn das Problem auch in einer Testumgebung auftritt, reichen Sie ein neues Problem mit einer Anleitung zur Reproduktion des Problems ein.
Wenn das Problem nur in Ihrer speziellen Testumgebung auftritt, gehen Sie so vor:
Verwenden Sie das alternative Chrome-Installationsprogramm. Dadurch wird Chrome für alle Nutzer installiert. Dadurch lassen sich Probleme häufig beheben, wenn Sie Selenium als Hintergrunddienst ausführen.
Eine häufige Ursache für Abstürze von Chrome beim Starten ist die Ausführung von Chrome als Root-Nutzer (Administrator) unter Linux. Dieses Problem lässt sich zwar umgehen, indem beim Erstellen der WebDriver-Sitzung das Flag --no-sandbox
übergeben wird. Eine solche Konfiguration wird jedoch nicht unterstützt und wir raten dringend davon ab. Konfigurieren Sie Ihre Umgebung so, dass Chrome stattdessen als normaler Nutzer ausgeführt wird.
Wenn sich das Problem mit keiner dieser Lösungen beheben lässt, erstellen Sie ein neues Problem mit einer Anleitung zum Reproduzieren des Problems. Wenn das Problem nur in einer speziellen, ungewöhnlichen Testumgebung auftritt, werden die ChromeDriver-Entwickler es möglicherweise nicht untersuchen und beheben.