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


17

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

この共有オブジェクトファイルを必要とせずにLinuxでFirefoxを実行するにはどうすればよいですか?

回答:


8

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

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

firefox -headless http://test.com/

こちらのFirefox開発ドキュメントをご覧ください。


すばらしい—最新の高品質の回答を追加してくれてありがとう。それがまさにStack Exchangeの設計対象です。
ポールD.ウェイト

14

必要なすべてのGtkライブラリなしでFirefoxを実行することはできませんが、ライブラリをインストールすることで簡単に解決できます。通常、パッケージ管理システムを介してFirefoxをインストールすると、必要なすべてのライブラリが取り込まれます。

Firefoxを正常に実行するには、Xサーバーが必要です(アプリケーションがコンテンツの作成に使用するライブラリであるGtkのようなものとは対照的に、ウィンドウとそのコンテンツを表示する部分です)。これは、通常はサーバーで実行するものではありません。XサーバーなしでFirefoxでできることはごくわずかです。Seleniumがその1つであるかどうかはわかりません。

サーバーでFirefoxを実行するには、「仮想」Xサーバーを実行します。単純なものはXvfb(v irtual f rame b uffer X server)です。それは中ですX.orgサーバの配布。サンプル使用法:

Xvfb :19 -screen 0 1024x768x16 &
export DISPLAY=:19
firefox &

1
素晴らしい、Gillesを応援します。私はまた、Xvfbのが実行して取得するためのこれらの記事が役に立ったと評価:alittlemadness.com/2008/03/05/running-selenium-headlessを、そしてblog.kabisa.nl/2010/05/24/...
ポールD.ウェイトを

7

できません。XおよびGtk +クライアントライブラリとリンクされており、それらなしでビルドすることさえ可能だとは思わない。

Firefoxのヘッドレスバージョンでも、GTK +が必要です


2

SeleniumはGUIテストツールであるため、Xがなくても機能するとは信じ難いでしょう。

したがって、私の推測では、ヘッドレスサーバーにはGillesが推奨するようなXインストールが必要です。同様の選択肢がいくつかあります。


2

あなたはできる

  • 仮想フレームバッファーでFirefoxを使用します。 xvfb-run -a firefox
  • 使用SlimerJS xcfbと(Firefoxのから組み込みのGecko /レンダリングエンジン)、
  • 使用PhantomJSを介して表示し、セレンのサポートを必要とせずに埋め込まれたWebKitのようGhostDriver - WebKitがあなたのためにOKである場合。

xvfbではなく、 'xvfb-run -a ...'を意味すると思いますか?
クッツィ

ありがとう:-)その間に変更されたのでしょうか?
フローブ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.