Ich versuche, Headless Firefox auf dem Remote-Computer (unter Ubuntu 16.04) über Selenium über SSH auszuführen. Dies gibt mir jedoch den Fehler "Fehler: GDK_BACKEND stimmt nicht mit verfügbaren Anzeigen überein". Auf meinem Host-Computer wird Windows ausgeführt. Ich möchte die grafische Ausgabe nicht sehen. Es wird nur für Selentests verwendet.
Ich verwende X Virtual Frame Buffer als Dummy-Treiber:
Xvfb :10 -screen 0 1024x768x16 &
Ich habe auch die Umgebungsvariable DISPLAY mit dem Wert 10 für diesen speziellen Fall exportiert.
Wo gehe ich falsch?
BEARBEITEN: Wenn ich nach dem Ausführen von xvbf einfach "sudo Firefox" in meiner Befehlszeile über SSH ausführe, werden keine Fehler ausgegeben. Fehler werden nur ausgelöst, wenn Firefox durch Selen läuft.
Mehr Details:-
Ich rufe Firefox durch Selen. Der genaue Fehler, den der Selenium-Standalone-Server ausgibt, ist: -
17:52:55.218 INFO - Executing: [new session: Capabilities [{browserName=firefox, platform=ANY, firefox_profile=UEsDBBQAAAAAAJuOD0nf9RXUMgAAA...}]])
17:52:55.230 INFO - Creating a new session for Capabilities [{browserName=firefox, platform=ANY, firefox_profile=UEsDBBQAAAAAAJuOD0nf9RXUMgAAA...}]
org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms. Firefox console output:
Error: GDK_BACKEND does not match available displays
GDK_BACKEND
der einzige Ort, von dem ich weiß, dass er verwendet wird , um GTK zur Verwendung zu zwingenwayland
. In diesem Fall würde es auf gesetzt werden GDK_BACKEND=wayland
. Das Äquivalent für xorg wäre GDK_BACKEND=xinit
(aber das ist eine Vermutung).
xinit
standardmäßig installiert, sodass Firefox möglicherweise nicht feststellen kann, dass es xorg als Backend verwenden sollte.