Ich versuche, den Firefox-GUI-Browser auf einem kopflosen CentOS-Server auszuführen, um einige Webtests durchzuführen.
Die grafische Ausgabe muss nicht angezeigt werden, da ich die Selenium- Server- API verwende , um die Eingabe des Browsers zu steuern und die Ausgabe zu überprüfen.
Das Setup wurde erfolgreich auf einem Desktop-Mac-Computer getestet. Auf meinem kopflosen VPS CentOS-Server kann er jedoch nicht mit der folgenden Meldung ausgeführt werden: "Fehler: Keine Anzeige angegeben." (Was Sinn macht, da es sich nur um einen Server handelt, der irgendwo auf einem Gestell sitzt.)
Wie kann ich Firefox ohne Anzeige zum Laufen bringen, damit Selenium damit interagieren kann? Oder allgemeiner: Wie können Benutzer GUI-reine Anwendungen auf einem Linux-Server ausführen, wenn keine Anzeige vorhanden ist?
Ich habe festgestellt, dass Firefox diese Befehlszeilenoption hat:
X11 options
--display=DISPLAY X display to use
Leider weiß ich nichts über X11 oder die Anzeige unter CentOS, sodass ich nicht weiß, was ich in der Befehlszeile angeben soll oder ob dies helfen würde.
Antworten:
Verwenden Sie Xvfb. Sie erhalten einen X-Server, für den keine Verbindung zu einem physischen Bildschirm erforderlich ist.
(Also würden Sie unter CentOS so etwas wie "yum install xorg-x11-server-Xvfb" machen.)
Sie können es dann auf dem Bildschirm ": 1" mit dem Befehl "/ path / on / which / installed / Xvfb: 1 -screen 0 1024x768x24 &" starten. Dadurch wird ein Bildschirm mit einer Auflösung von 1027 x 768 und einer Tiefe von 24 erstellt. Wenn Sie "&" verwenden, wird der Befehl im Hintergrund ausgeführt.
Bevor Sie Firefox starten, müssen Sie die Anzeige zugänglich machen. Dies geschieht mit dem Befehl Exportieren - d. H. "export DISPLAY =: 1" zeigt auf den entsprechenden Host.
quelle
export
Befehl auf die gleiche Terminalsitzung gesetzt sein muss wie das Terminal, auf dem Sie Ihren Firefox