33

我已经在我的无头服务器上设置了 xvfb 服务器,当我运行 DISPLAY=:99 firefox 时,我得到这个异常缺少 RANDR 扩展

他们中的许多人说要从 xorg.conf 文件中禁用一些 xinerna,但在我的情况下没有创建这个文件。

所以我正在寻找如何添加缺少的 RANDR 扩展。

4

3 回答 3

25

当我使用 xvfb 通过 selenium 无头运行 Firefox 时,我看到此错误消息。事实证明,这条消息对我来说是一个红鲱鱼。该消息只是一个警告,而不是错误。这不是 Firefox 无法正确启动的原因。

Firefox 没有为我启动的原因是它已更新到不再与我正在使用的 Selenium 驱动程序兼容的版本。我将 selenium 驱动程序升级到最新版本,Firefox 再次正常启动(即使有关于 RANDR 的警告消息)。

Firefox 的新版本通常只与一两个版本的 Selenium 兼容。偶尔发布的 Firefox 没有与Selenium兼容的版本。发生这种情况时,可能需要一两个星期才能发布新版本的 Selenium。因此,我现在保留一个已知可与我安装的 Selenium 版本一起使用的 Firefox 版本。除了由我的包管理器保持最新的 Firefox 版本外,我还安装了一个版本/opt/(例如/opt/firefox31/)。Selenium Java API 为要使用的 Firefox 二进制文件的位置提供一个参数。缺点是旧版本的 Firefox 存在已知的安全漏洞,不应该与不受信任的内容一起使用。

于 2014-04-04T17:36:21.070 回答
17

首先,Xvfb 不会从 xorg.conf 读取配置。Xvfb 是 KDrive X 服务器的一个变体,并且像该系列的所有成员一样,从命令行获取其配置。

XRandR 和 Xinerama 确实是相互排斥的,但在 Xvfb 的情况下,首先没有 Xinerama。您可以通过至少使用以下命令行选项启动 Xvfb 来启用 XRandR 扩展

Xvfb +extension RANDR [further options]
于 2012-10-02T15:34:08.387 回答
2

我对Firefox 30 + Selenium 2.49 + Ubuntu 15.04有同样的问题。

它在Ubuntu 14上运行良好,但在升级到15.04后,我在使用XfvbRANDR启动 Firefox 时遇到了同样的警告和问题。

添加后+extension RANDR它再次工作。

$ vim /etc/init/xvfb.conf

#!upstart
description "Xvfb Server as a daemon"

start on filesystem and started networking
stop on shutdown

respawn

env XVFB=/usr/bin/Xvfb
env XVFBARGS=":10 -screen 1 1024x768x24 -ac +extension GLX +extension RANDR +render -noreset"
env PIDFILE=/var/run/xvfb.pid

exec start-stop-daemon --start --quiet --make-pidfile --pidfile $PIDFILE --exec $XVFB -- $XVFBARGS >> /var/log/xvfb.log 2>&1
于 2016-04-06T12:43:02.150 回答