Wie kann ich Firefox unter CentOS ohne Anzeige ausführen? [geschlossen]

16

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.

Eric
quelle
4
Ich finde es sehr seltsam, dass eine Frage, die 13 Mal mit einem Stern versehen wurde, als "zu lokalisiert" geschlossen wird.
harshath.jr
1
Genau, ich habe ein ähnliches Problem und sowohl die Frage als auch die Antwort waren für mich von Vorteil. Es sollte definitiv wieder geöffnet werden, falls jemand eine andere Lösung findet.
Marek Rost

Antworten:

18

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.

cjc
quelle
Beeindruckend! Vielen Dank! Das funktioniert - obwohl ich Tonnen von seltsamen Fehlermeldungen vom Display bekomme. Ich werde eine neue Frage dazu posten. Unterm Strich funktioniert es trotz der Nachrichten und gibt die Daten zurück, die ich brauche. Vielen Dank, das ist nur die Hilfe, die ich brauchte.
Eric
Übrigens - wie kann ich das Xvfb-Display "herunterfahren", wenn ich mit allem fertig bin?
Eric
Sie sollten in der Lage sein, den Prozess einfach abzubrechen. Wenn Sie komplexer werden möchten, können Sie Start / Stopp-Skripte einrichten (falls das Paket dies nicht bereits bietet; möglicherweise: Suchen Sie in /etc/init.d nach xvfb-Skripten).
cjc
1
Danke, verstanden. Ich habe eine Folgefrage zu den angezeigten
Eric
Diese Antwort ist richtig, aber Sie MÜSSEN bedenken, dass der exportBefehl auf die gleiche Terminalsitzung gesetzt sein muss wie das Terminal, auf dem Sie Ihren Firefox
ausführen werden