2016-11-24 14 views
4

実際には、リモートのdebianサーバでセレンを使用してヘッドレスブラウザを実行しようとしています。私はfirefox 46.0.1をサーバーにインストールしており、私はセレン2.53.1バージョンを使用しています。GDK_BACKENDを取得すると使用可能な表示が一致しない

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

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(); 

誰でも助けることができますか?

+0

http://stackoverflow.com/questions/6183276/how-do-i-run-selenium-in-xvfb – hyades

答えて

0

私はJavaに精通していません。 GDK_BACKENDが利用できるディスプレイと一致しない、その後pyvirtualdisplayをインストールします:

pip install pyvirtualdisplay selenium 

あなたもXVFBが必要な場合がありますしかし、Pythonではこの問題は、これはあなたに

を助けるかもしれない、それはエラーと言う場合は、次のような方法で解決することができます:

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

sudo apt-get install xvfb 

は、このコードを追加してみてください10

全例:

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() 
+0

このエラーを取得する: 'selenium.common.exceptions.WebDriverException :メッセージ: 'geckodriver'実行ファイルがPATHに存在する必要があります。 – CJ7

+0

セレンはgeckoドライバの実行ファイルを見つけることができません。あなたがubuntuと実行可能ファイルを実行しているなら、それがusr/binフォルダの下にあることを確認してください。 – sola

0

は、あなたはそれ以外の場合は、ブラウザを開くことができませんセレンサーバが実行されているシェルで表示をエクスポートする必要があります。上記のサンプルコードを実行するときに

nohup sudo Xvfb: 10 - ac & 
export DISPLAY=10 
関連する問題