web-dev-qa-db-ja.com

GDK_BACKENDの取得が利用可能なディスプレイエラーと一致しませんdebianで

実際、私はSeleniumを介してリモートDebianサーバーでヘッドレスブラウザを実行しようとしています。サーバーにFirefox46.0.1をインストールしていて、Selenium2.53.1バージョンを使用しています。

特定のテストを実行しようとすると、次のエラーが発生しました。

org.openqa.Selenium.WebDriverException: Failed to connect to binary FirefoxBinary(/usr/bin/firefox) on port 7055; process output follows: 
Error: GDK_BACKEND does not match available displays

私はこのように私のコードでFirefoxドライバーをインスタンス化しました:

saDriver = new FirefoxDriver();

誰か助けてもらえますか?

6
hellWarrior

私はJavaに精通していません。ただし、Pythonでは、この問題は次の方法で解決できます。これは役立つ場合があります

エラー:GDK_BACKENDが使用可能なディスプレイと一致しない場合は、pyvirtualdisplayをインストールします:

pip install pyvirtualdisplay Selenium

Xvfbも必要になる場合があります。

Sudo apt-get install xvfb

次に、次のコードを追加してみてください。

from pyvirtualdisplay import Display
display = Display(visible=0, size=(800, 600))
display.start()

完全な例:

from pyvirtualdisplay import Display
from Selenium import webdriver

display = Display(visible=0, size=(800, 600))
display.start()

browser = webdriver.Firefox()
browser.get('http://www.python.org')

browser.close()
display.stop()
2
Basil Jose

Seleniumサーバーが実行されているシェルでディスプレイをエクスポートする必要があります。そうしないと、ブラウザーを開くことができません。

Nohup Sudo Xvfb: 10 - ac &
export DISPLAY=10
0
sola