2013-04-08 11 views
6

Sto usando Selenium per testare il mio sito Web, apre un URL usando Firefox, accede e fa alcuni elementi nella pagina e poi si disconnette e chiude firefox. Che tutto funziona alla grande su Windows 7. Il codice inizia con:Selenium Webdriver - Problema con FirefoxDriver su Debian Lenny (Errore Nessun display)

WebDriver driver = new FirefoxDriver(); 
driver.get(URL); 

Ora ho schierato mio vaso in scatola di Linux che lancia Debian Lenny, che ha iceweasel su di esso. Un lavoro cron avvia il programma che getta il seguente errore quando si tenta di aprire firefox:

org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms. Firefox console output: Error: cannot open display: :0 Error: cannot open display: :0

at org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.start(NewProfileExtensionConnection.java:106) at org.openqa.selenium.firefox.FirefoxDriver.startClient(FirefoxDriver.java:244) at org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:110) at org.openqa.selenium.firefox.FirefoxDriver.(FirefoxDriver.java:190) at org.openqa.selenium.firefox.FirefoxDriver.(FirefoxDriver.java:183) at org.openqa.selenium.firefox.FirefoxDriver.(FirefoxDriver.java:179) at org.openqa.selenium.firefox.FirefoxDriver.(FirefoxDriver.java:92) at auth.Authenticator.authenticate(Authenticator.java:15) at reader.ReaderThread.run(ReaderThread.java:67) org.openqa.selenium.WebDriverException: Failed to connect to binary FirefoxBinary(/usr/bin/firefox) on port 7055; process output follows: Error: cannot open display: :0 Error: cannot open display: :0

Build info: version: 'unknown', revision: 'unknown', time: 'unknown' System info: os.name: 'Linux', os.arch: 'i386', os.version: '2.6.26-2-686', java.version: '1.6.0_26' Driver info: driver.version: FirefoxDriver at org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.start(NewProfileExtensionConnection.java:118) at org.openqa.selenium.firefox.FirefoxDriver.startClient(FirefoxDriver.java:244) at org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:110) at org.openqa.selenium.firefox.FirefoxDriver.(FirefoxDriver.java:190) at org.openqa.selenium.firefox.FirefoxDriver.(FirefoxDriver.java:183) at org.openqa.selenium.firefox.FirefoxDriver.(FirefoxDriver.java:179) at org.openqa.selenium.firefox.FirefoxDriver.(FirefoxDriver.java:92) at auth.Authenticator.authenticate(Authenticator.java:15) at reader.ReaderThread.run(ReaderThread.java:67)

ho Xvfb in esecuzione su OK nella finestra e ho impostato DISPLAY variabile a 0. Ho cercato in giro e nessuna delle soluzioni (come l'impostazione della variabile env) ha funzionato.

XVfb non dovrebbe funzionare come un ambiente non grafico che verrà avviato dal browser e che eseguirà le azioni necessarie? Cosa lo ferma dall'avvio?

Sto utilizzando l'ultima versione di Selenium 2.31 e Firefox 3.0.6 Iceweasel.

Modifica: Aggiornato su Firefox 14 e continuano a vedere lo stesso problema. Ho persino aumentato il limite di timeout a 60 secondi.

driver.manage(). Timeouts(). PageLoadTimeout (60, TimeUnit.SECONDS);

risolto: eseguendolo con l'involucro Xvfb, Xvfb-gestito in questo modo:

export DISPLAY=:0.0 
xvfb-run --auto-servernum --server-num=0 nohup java - jar X.jar 
+0

Sei in grado di lanciare firefox (o un'altra applicazione X) direttamente? – WilQu

+0

Quale versione di Selenium e Firefox? – Arran

+0

Hai considerato l'utilizzo di una configurazione hub/nodo? Ho scoperto che per essere più facile lavorare con. –

risposta

2

risolto in questo modo:

export DISPLAY=:0.0 xvfb-run --auto-servernum --server-num=0 nohup java - jar X.jar 
0

O cercare di aggiornare il WebDriver o il downgrade firefox. questo problema è correlato al fatto che il server di selenio non può connettersi al proprio firefox.

+0

Ciao Buddy, cosa intendi per aggiornare il mio webdriver? Sto usando l'ultima versione di Selenium per l'API WebDriver, quindi penso che sia quella che dovrei usare. Quale versione di Firefox consigliate? So che qualsiasi cosa da quelle supportate dovrebbe fare, ma se ce n'è una che è ripetutamente testata per funzionare senza problemi sarebbe l'ideale. – blondeamon

+0

@WiQu: si posso avviare firefox usando xvfb-run firefox – blondeamon

+0

Bene AFAIR, io uso la versione FF 14 o 18. Ricorda che FF in Windows e Linux potrebbe avere problemi diversi, per essere sempre sicuro 1 o 2 Versione sotto il versione rilasciata di FF. I miei 2 centesimi. – buddy

-1

Ho visto il problema simile e questo si sta solo per Firefox, per altro browser tutto funzionava bene, ho provato su Chrome. Ecco la soluzione per questo 1. Controlla la versione di FF, se è l'ultima, quindi cerca una versione minore di FF. È consigliato per una maggiore stabilità. 2. E dovresti sempre provare a prendere l'ultimo binario di selenio dal sito del selenio. Per ulteriori dettagli prova questa soluzione: http://khyatisehgal.wordpress.com/2014/09/09/at-org-openqa-selenium-firefox-internal-newprofileextensionconnection-startnewprofileextensionconnection-java106/

+1

Questa soluzione non risolverà un problema con 'DISPLAY', che è il problema presentato nella domanda. – Louis

-2

Questo problema viene risolto dopo l'aggiornamento all'ultimo bar di Selenium.

+1

Questa soluzione non risolverà un problema con 'DISPLAY', che è il problema presentato nella domanda. – Louis

Problemi correlati