web-dev-qa-db-ja.com

ディスプレイなしでCentOSでFirefoxを実行するにはどうすればよいですか?

Webテストを実行するために、ヘッドレスCentOSサーバーでFirefox GUIブラウザーを実行しようとしています。

Selenium server [〜#〜] api [〜#〜] を使用してブラウザの入力を制御し、出力を検査するため、グラフィック出力を表示する必要はありません。

セットアップはデスクトップMacコンピューターで正常にテストされました。ただし、ヘッドレスVPS CentOSサーバーでの実行に失敗し、「エラー:ディスプレイが指定されていません」というメッセージが表示されます。 (これは、サーバーがラックのどこかに置かれているだけなので、理にかなっています。)

Firefoxをディスプレイなしで実行して、Seleniumがそれと対話できるようにするにはどうすればよいですか?または-より広義に-ディスプレイがない場合、LinuxサーバーでGUIのみのアプリケーションをどのように実行しますか?

Firefoxに次のコマンドラインオプションがあることに気づきました。

X11 options
  --display=DISPLAY  X display to use

残念ながら、X11やCentOSのディスプレイについては何も知りません。そのため、コマンドラインで何を指定するか、またはこれが役立つかどうかわかりません。

17
Eric

Xvfbを使用します。物理ディスプレイへの接続を必要としないXサーバーを提供します。

(つまり、CentOSでは、「yum install xorg-x11-server-Xvfb」のようなものを実行します。)

次に、コマンド "/ path/on/which/installed/Xvfb:1 -screen 0 1024x768x24&"を使用して、ディスプレイ ":1"で起動できます。これにより、解像度1027x768、奥行き24の画面が作成されます。「&」を使用すると、コマンドがバックグラウンドで実行されます。

Firefoxを起動する前に、ディスプレイにアクセスできるようにする必要があります。これは、エクスポートコマンドを使用して行います。 "export DISPLAY =:1"、適切なホストを指します。

18
cjc