33

ヘッドレス サーバーに xvfb サーバーをセットアップしましたが、DISPLAY=:99 Firefox を実行しているときに、RANDR 拡張機能が見つからないという例外が発生します。

彼らの多くは、xorg.conf ファイルからいくつかの xinerna を無効にするように言っていますが、私の場合、このファイルは作成されません。

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

4

3 に答える 3

25

xvfb を使用してセレン経由で Firefox ヘッドレスを実行すると、このエラー メッセージが表示されます。そのメッセージは私にとって厄介なものだったことが判明しました。このメッセージは単なる警告であり、エラーではありません。Firefox が正しく起動しなかったのはそのためではありません。

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

多くの場合、Firefox の新しいリリースは、1 つまたは 2 つのバージョンの Selenium としか互換性がありません。ときどき、互換性のないバージョンの Seleniumを含む Firefox がリリースされます。その場合、Selenium の新しいバージョンがリリースされるまでに 1 ~ 2 週間かかる場合があります。このため、インストールした 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にアップグレードした後、Xfvbを使用して Firefox を起動すると、同じRANDR警告と問題が発生しました。

追加+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 に答える