获取GDK_BACKEND与debian中的可用显示错误不匹配

hel*_*ior 5 java firefox debian headless-browser selenium-webdriver

实际上我试图通过selenium在远程debian服务器上运行无头浏览器.我在服务器上安装了firefox 46.0.1,我使用的是selenium 2.53.1版本.

每当我试图运行给定的测试时,我得到以下错误.

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
Run Code Online (Sandbox Code Playgroud)

我在我的代码中实例化了firefox驱动程序,如下所示:

saDriver = new FirefoxDriver();
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?

小智 2

我对Java不熟悉。但是在Python中这个问题可以通过以下方法解决,这可能会帮助你

如果显示错误:GDK_BACKEND 与可用显示不匹配,则安装 pyvirtualdisplay:

pip install pyvirtualdisplay selenium
Run Code Online (Sandbox Code Playgroud)

您可能还需要 xvfb:

sudo apt-get install xvfb
Run Code Online (Sandbox Code Playgroud)

然后尝试添加以下代码:

from pyvirtualdisplay import Display
display = Display(visible=0, size=(800, 600))
display.start()
Run Code Online (Sandbox Code Playgroud)

完整示例:

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()
Run Code Online (Sandbox Code Playgroud)