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
Sei in grado di lanciare firefox (o un'altra applicazione X) direttamente? – WilQu
Quale versione di Selenium e Firefox? – Arran
Hai considerato l'utilizzo di una configurazione hub/nodo? Ho scoperto che per essere più facile lavorare con. –