私はDreamhost共有ホスティングを利用していて、Seleniumで使用するためにFirefox 3.0をヘッドレスで実行しようとしています。
実行しようとすると(~/local/bin/firefox/firefox
)、次のエラーメッセージが表示されます。
error while loading shared libraries: libgtk-x11-2.0.so.0: cannot open shared object file: No such file or directory
この共有オブジェクトファイルを必要とせずにFirefoxをLinuxで実行するにはどうすればよいですか?
私はこれがかなり古い質問であることを知っていますが、Googleからここに案内され、答えを見つけるためにしばらく検索する必要があったので、より最近の回答を追加したいと思いました。
Firefox 57以降では、Firefoxをインストールして実行するだけで、ヘッドレスモードで実行できます。
firefox -headless http://test.com/
必要なすべてのGtkライブラリがないとFirefoxを実行できませんが、ライブラリをインストールすることで簡単に解決できます。通常は、パッケージ管理システムを介してFirefoxをインストールします。これにより、必要なすべてのライブラリが取り込まれます。
Firefoxを正常に実行するには、 Xサーバー が必要です(これは、アプリケーションがコンテンツを構築するために使用するライブラリであるGtkのようなものとは対照的に、ウィンドウとそのコンテンツを表示する部分です)。これは通常、サーバーでは実行しないものです。 XサーバーなしでFirefoxでできることはほとんどありませんが、Seleniumがその1つであるかどうかはわかりません。
サーバーでFirefoxを実行するには、「仮想」Xサーバーを実行します。単純なものはXvfb(virtualframebuffer[〜#〜] x [〜#〜]サーバー)。 X.orgサーバー配布 にあります。使用例:
Xvfb :19 -screen 0 1024x768x16 &
export DISPLAY=:19
firefox &
できません。 XおよびGtk +クライアントライブラリとリンクされており、それらなしでビルドすることも不可能だと思います。
Firefoxのヘッドレスバージョンでも、 GTK +が必要です 。
あなたはできる
xvfb-run -a firefox
SeleniumはGUIテストツールであるため、Xがなくても機能することは信じられません。
したがって、私の最良の推測では、ヘッドレスサーバーにはGillesによって提案されているようなXインストールが必要です。同様の代替案がいくつかあります。