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
xinit
standardmäßig installiert, sodass Firefox möglicherweise nicht feststellen kann, dass es xorg als Backend verwenden sollte.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 werdenGDK_BACKEND=wayland
. Das Äquivalent für xorg wäreGDK_BACKEND=xinit
(aber das ist eine Vermutung).Antworten:
Anscheinend ist dies auf die Inkompatibilität zwischen Firefox 48 und Selen zurückzuführen (die Selenerweiterung ist in Firefox 48 nicht signiert, und in Firefox 48 werden nur signierte Erweiterungen ausgeführt). Ich habe nur Chrom verwendet, da mein Anwendungsfall nicht extrem browserspezifisch war.
quelle
Ich habe dieses Problem mit Firefox gelöst. Die Schritte sind:
sudo apt-get install xvfb
xvfb-run java8 -jar selenium-project.jar
Meine Selenium Version ist
2.53.1
und Ubuntu 14.04.quelle
Ich weiß nicht, warum die
DISPLAY
Methode env variable nicht funktioniert hat, aber ich habexvfb-run <command>
(in meinem Fallxvfb-run npm test
) auf using umgestellt und es hat großartig funktioniert! :) :)quelle
Ich habe hier geantwortet /programming/50250580/error-gdk-backend-does- not-match-available-display-running-selenium-using-cro
quelle