実際、私は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();
誰か助けてもらえますか?
私は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()
Seleniumサーバーが実行されているシェルでディスプレイをエクスポートする必要があります。そうしないと、ブラウザーを開くことができません。
Nohup Sudo Xvfb: 10 - ac &
export DISPLAY=10