
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のみを使用しています。
答え2
私はFirefoxを使ってこの問題を解決しました。ステップは次のとおりです。
- Firefoxを49.0から46.0にダウングレード
- コマンドによるXVFBのインストール
sudo apt-get install xvfb
- 次のコマンドを使用して Selenium を実行します。
xvfb-run java8 -jar selenium-project.jar
私のSeleniumバージョンは2.53.1
Ubuntu 14.04です。
答え3
DISPLAY
なぜenv変数メソッドが機能しないのかわかりませんが、xvfb-run <command>
(私の場合はxvfb-run npm test
)それを使用するように切り替えましたが、うまく機能します! :)
答え4
私はすでにここに答えました。 https://stackoverflow.com/questions/50250580/error-gdk-backend-does- croを使用してセレンを実行する一致はありません。