web-dev-qa-db-fra.com

Obtenir GDK_BACKEND ne correspond pas aux erreurs d'affichage disponibles dans Debian

En fait, j'essaie de lancer un navigateur sans tête dans un serveur Debian distant via Selenium. J'ai firefox 46.0.1 installé sur le serveur et j'utilise la version de Selenium 2.53.1. 

Chaque fois que j'ai essayé d'exécuter un test donné, j'ai l'erreur suivante. 

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

J'ai instancié le pilote firefox dans mon code comme ceci:

saDriver = new FirefoxDriver();

quelqu'un peut-il aider?

5
hellWarrior

Je ne suis pas familier avec Java. Cependant, en Python, ce problème peut être résolu par la méthode suivante, cela peut vous aider

S'il indique Erreur: GDK_BACKEND ne correspond pas aux écrans disponibles, installez pyvirtualdisplay:

pip install pyvirtualdisplay Selenium

Vous pourriez aussi avoir besoin de xvfb:

Sudo apt-get install xvfb

Ensuite, essayez d'ajouter ce code:

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

Exemple complet:

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

Vous devez exporter l'affichage dans le shell dans lequel le serveur Selenium est exécuté, sinon le navigateur ne pourra pas être ouvert. 

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