2012-09-28 441 views
32

我已經安裝了xvfb的服務器我無頭的服務器上,當我米運行 DISPLAY =:99火狐 我得到這個例外失蹤RANDR擴展如何添加缺少的RANDR擴展

他們中許多人說:從xorg.conf文件中禁用一些xinerna,但是這個文件沒有在我的情況下創建。

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

回答

15

首先,Xvfb不會從xorg.conf中讀取配置。 Xvfb是KDrive X服務器的一個變體,就像該家族的所有成員從命令行獲取其配置一樣。

確實,XRandR和Xinerama是互斥的,但在Xvfb的情況下,沒有Xinerama首先。您可以啓用通過啓動Xvfb來至少使用以下命令行選項

Xvfb +extension RANDR [further options] 
+1

至少在raspbian上,似乎沒有Xvfb的RANDR支持。有其他解決方案嗎? – Black

+2

@Black:您可以始終使用自己的自定義配置從源代碼構建自己的源代碼。我強烈建議在Raspbian系統上安裝工具鏈並在那裏編譯。幸運的是,Xvfb對於R-Pi來說並不是很複雜和可管理的任務;如果你可以避免這種情況,你肯定不想經歷建立一個兼容的交叉編譯工具鏈的努力。 – datenwolf

+0

沒有幫助,同樣的錯誤... –

24

當我使用xvfb的通過硒運行Firefox的無頭,我看到此錯誤消息XRandR擴展。事實證明,這條消息對我來說是一條紅鯡魚。該消息只是一個警告,而不是一個錯誤。這不是爲什麼Firefox不能正確啓動。

Firefox未啓動的原因是它已更新爲與我正在使用的Selenium驅動程序不兼容的版本。我將硒驅動程序升級到最新版本,並且Firefox再次啓動(即使有關於RANDR的此警告消息)。

Firefox的新版本通常只與Selenium的一個或兩個版本兼容。有時Firefox會與012版本的兼容版本的Selenium一起發佈。當發生這種情況時,新版Selenium可能需要一到兩週才能發佈。因此,我現在保留一個已知可與我已安裝的Selenium版本配合使用的Firefox版本。除了由我的軟件包管理器保持最新版本的Firefox之外,我還在/opt/(例如/opt/firefox31/)中安裝了一個版本。 Selenium Java API爲要使用的Firefox二進制文件的位置提供參數。缺點是舊版本的Firefox已經知道安全漏洞,不應該與不受信任的內容一起使用。

+0

謝謝@ Stephen,精彩的回答。 – Prateek

+0

你爲我節省了幾個小時:) – ramigg

+0

加載webdriver時,你可以傳遞你喜歡的二進制位置。這包括一個自定義安裝,一個便攜式或任何你指向。 – erm3nda

2

有同樣的問題火狐30 + 硒2.49 + 的Ubuntu 15.04

它好工作與Ubuntu的14,但升級到15.04後,我得到了相同的RANDR警告和問題在使用Xfvb啓動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 
+0

使用Ubuntu 14.04或14.10?因爲我正在嘗試14.04,並且在嘗試運行Chromium瀏覽器時收到了「丟失的RANDR」擴展消息...可能是Chromium問題 – zabumba