it-swarm.com.de

Das Abrufen von GDK_BACKEND stimmt nicht mit den verfügbaren Anzeigefehlern in Debian überein

Eigentlich versuche ich, einen kopflosen Browser auf einem entfernten Debian-Server über Selenium zu betreiben. Ich habe Firefox 46.0.1 auf dem Server installiert und verwende die Version Selenium 2.53.1. 

Immer wenn ich versuchte einen bestimmten Test durchzuführen, bekam ich die folgende Fehlermeldung. 

org.openqa.Selenium.WebDriverException: Failed to connect to binary FirefoxBinary(/usr/bin/firefox) on port 7055; process output follows: 
Error: GDK_BACKEND does not match available displays

Ich habe den Firefox-Treiber in meinem Code folgendermaßen instanziiert:

saDriver = new FirefoxDriver();

kann jemand helfen?

5
hellWarrior

Java ist mir nicht vertraut. In Python kann dieses Problem jedoch mit der folgenden Methode gelöst werden. Dies kann Ihnen helfen

Wenn der Fehler angezeigt wird: GDK_BACKEND stimmt nicht mit den verfügbaren Anzeigen überein, und installieren Sie pyvirtualdisplay:

pip install pyvirtualdisplay Selenium

Möglicherweise benötigen Sie auch xvfb:

Sudo apt-get install xvfb

Versuchen Sie dann, diesen Code hinzuzufügen:

from pyvirtualdisplay import Display
display = Display(visible=0, size=(800, 600))
display.start()

Vollständiges Beispiel:

from pyvirtualdisplay import Display
from Selenium import webdriver

display = Display(visible=0, size=(800, 600))
display.start()

browser = webdriver.Firefox()
browser.get('http://www.python.org')

browser.close()
display.stop()
2
Basil Jose

Sie müssen die Anzeige in der Shell exportieren, in der der Selenium-Server ausgeführt wird. Andernfalls kann der Browser nicht geöffnet werden. 

Nohup Sudo Xvfb: 10 - ac &
export DISPLAY=10
0
sola