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のディスプレイについては何も知りません。そのため、コマンドラインで何を指定するか、またはこれが役立つかどうかわかりません。
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"、適切なホストを指します。