Selenium経由でSSH経由でリモートコンピュータ(Ubuntu 16.04を実行)でヘッドレスFirefoxを実行しようとしています。ただし、これにより、「エラー:GDK_BACKENDが利用可能なモニタと一致しません。」エラーが発生します。私のホストコンピュータはWindowsを実行します。グラフィック出力を見たくありません。セレンテストにのみ使用されます。
X仮想フレームバッファを使用して仮想ドライバとして機能します。
Xvfb :10 -screen 0 1024x768x16 &
この特別なケースでは、DISPLAY環境変数を値10にエクスポートしました。
私はどこで間違っていますか?
編集:xvbfを実行した後、SSH経由でコマンドラインで「sudo firefox」を実行してもエラーは発生しません。このエラーは、セレンを介してFirefoxを実行している場合にのみ発生します。
詳細は:-
Selenium経由でFirefoxを呼び出しています。セレンスタンドアロンサーバーで提供される正確なエラーは次のとおりです。
17:52:55.218 INFO - Executing: [new session: Capabilities [{browserName=firefox, platform=ANY, firefox_profile=UEsDBBQAAAAAAJuOD0nf9RXUMgAAA...}]])
17:52:55.230 INFO - Creating a new session for Capabilities [{browserName=firefox, platform=ANY, firefox_profile=UEsDBBQAAAAAAJuOD0nf9RXUMgAAA...}]
org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms. Firefox console output:
Error: GDK_BACKEND does not match available displays
ベストアンサー1
明らかに、これはFirefox 48とSeleniumの間の非互換性によるものです(Selenium拡張はFirefox 48では署名されず、Firefox 48は署名された拡張のみを実行します)。マイユースケースはブラウザに限定されないため、Chromeのみを使用しています。