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

标签 java firefox selenium-webdriver debian headless-browser

实际上,我正在尝试通过 selenium 在远程 debian 服务器中运行 headless 浏览器。我在服务器上安装了 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

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

saDriver = new FirefoxDriver();

谁能帮忙?

最佳答案

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

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

pip install pyvirtualdisplay selenium

您可能还需要 xvfb:

sudo apt-get install xvfb

然后尝试添加这段代码:

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

完整示例:

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()

关于java - 获取 GDK_BACKEND 与 debian 中的可用显示错误不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40789338/

相关文章:

java - 使用 Mapbox Android SDK 绘制圆形红色标记

java - 当测试失败时,Selenium 无法终止浏览器

selenium-webdriver - getAttribute ("value") 返回空值,为什么?

java - 在 xml 日志文件中记录 xml 数据

java - 如何创建一个名为“标识符”的新数据类型,使其每个实例都应该是有效的标识符名称?

java - 在 Windows 7 上创建文件会导致 "Access denied"异常

forms - Firefox 在重新加载时保留表单数据

html - 我如何使这些 <a> 适用于 Firefox 而不仅仅是 Internet Explorer 6

c# - selenium webdriver (c#) - 遍历选择菜单的最佳方式 - 然后验证元素样式更新?

c# - 处理多个断言并在未找到时失败测试