web-dev-qa-db-ja.com

不足しているRANDR拡張機能を追加する方法

ヘッドレスサーバーでxvfbサーバーをセットアップし、DISPLAY =:99 firefoxを実行しているときに、この例外が発生し、RANDR拡張機能がない

それらの多くは、xorg.confファイルから一部のxinernaを無効にすると言っていましたが、この場合、このファイルは作成されません。

そこで、不足しているRANDR拡張機能を追加する方法を探しています。

32
Mahesh More

まず、Xvfbはxorg.confから構成を読み取りません。 XvfbはKDrive Xサーバーのバリアントであり、そのファミリのすべてのメンバーと同様に、コマンドラインから設定を取得します。

XRandRとXineramaは相互に排他的ですが、Xvfbの場合、そもそもXineramaはありません。少なくとも次のコマンドラインオプションを使用してXvfbを起動すると、XRandR拡張機能を有効にできます。

Xvfb +extension RANDR [further options]
16
datenwolf

Xvfbを使用してSeleniumでFirefoxをヘッドレスで実行すると、このエラーメッセージが表示されます。メッセージは、私にとって赤いニシンであることがわかりました。メッセージは単なる警告であり、エラーではありません。 Firefoxが正しく起動しなかった理由ではありません。

Firefoxが起動しなかったのは、使用していたSeleniumドライバーと互換性のないバージョンに更新されていたためです。 Seleniumドライバーを最新のものにアップグレードすると、Firefoxが再び正常に起動します(RANDRに関するこの警告メッセージが表示されている場合でも)。

Firefoxの新しいリリースは、多くの場合、Seleniumの1つまたは2つのバージョンとのみ互換性があります。時折、Firefoxは[〜#〜] no [〜#〜] Seleniumの互換バージョンでリリースされます。その場合、Seleniumの新しいバージョンがリリースされるまでに1、2週間かかる場合があります。このため、現在インストールしたSeleniumのバージョンで動作することが知られているFirefoxのバージョンを保持しています。パッケージマネージャーによって最新に保たれているFirefoxのバージョンに加えて、/opt/(例/opt/firefox31/)。 Selenium Java APIは、使用するFirefoxバイナリの場所を引数に取ります。欠点は、Firefoxの古いバージョンには既知のセキュリティ脆弱性があり、信頼できないコンテンツには使用しないことです。

25

Firefox 30+Selenium 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
2