web-dev-qa-db-ja.com

LinuxでFirefoxをヘッドレスで実行するにはどうすればよいですか(つまり、libgtk-x11-2.0.so.0を必要とせずに)?

私は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で実行するにはどうすればよいですか?

19
Paul D. Waite

私はこれがかなり古い質問であることを知っていますが、Googleからここに案内され、答えを見つけるためにしばらく検索する必要があったので、より最近の回答を追加したいと思いました。

Firefox 57以降では、Firefoxをインストールして実行するだけで、ヘッドレスモードで実行できます。

firefox -headless http://test.com/

こちらのFirefox開発ドキュメントを参照してください。

10
AlaskaJoslin

必要なすべての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 +が必要です

7
geekosaur

あなたはできる

  • 仮想フレームバッファでFirefoxを使用する:xvfb-run -a firefox
  • xcfbで SlimerJS (Firefoxの組み込みGecko /レンダリングエンジン)を使用します。
  • PhantomJS を組み込みのWebKitとして使用します GhostDriver を介したディスプレイとSeleniumのサポートは必要ありません-WebKitが問題ない場合。
2
flob

SeleniumはGUIテストツールであるため、Xがなくても機能することは信じられません。

したがって、私の最良の推測では、ヘッドレスサーバーにはGillesによって提案されているようなXインストールが必要です。同様の代替案がいくつかあります。

2
asoundmove