2012-11-22 12 views
29

Sto eseguendo alcuni test del selenio. Quando li avvio direttamente da Eclipse, tutto funziona correttamente. Ma quando li comincio attraverso Maven c'è la seguente eccezione si verifica:Impossibile connettersi al binario FirefoxBinary con selenio in Maven

org.openqa.selenium.WebDriverException(Failed to connect to binary FirefoxBinary(C:\winapp\Firefox\firefox.exe) on port 7055; process output follows: 
null 
Build info: version: '2.26.0', revision: '18040', time: '2012-11-02 09:44:45' 
System info: os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.6.0_35' 
Driver info: driver.version: FirefoxDriver) 

sto usando Firefox 10.0.10 ESR. Ho anche provato con Selenium 2.25.0.

Qui è la mia ultima versione del pom.xml:

<dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>4.10</version> 
    </dependency> 
    <dependency> 
     <groupId>org.seleniumhq.selenium</groupId> 
     <artifactId>selenium-java</artifactId> 
     <version>2.26.0</version> 
    </dependency> 
    <dependency> 
     <groupId>org.seleniumhq.selenium</groupId> 
     <artifactId>selenium-server</artifactId> 
     <version>2.26.0</version> 
     <exclusions> 
      <exclusion> 
       <groupId>javax.servlet</groupId> 
       <artifactId>servlet-api</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 
    <dependency> 
     <groupId>com.thoughtworks.xstream</groupId> 
     <artifactId>xstream</artifactId> 
     <version>1.4.1</version> 
     <type>jar</type> 
    </dependency> 
    <dependency> 
     <groupId>org.jdom</groupId> 
     <artifactId>jdom2</artifactId> 
     <version>2.0.3</version> 
    </dependency> 
</dependencies> 

Se posso sostenere con ulteriori informazioni, per favore fatemelo sapere.

edit: aggiornamento pom.xml

EDIT2: Quello che mi si chiede di più, è che posso eseguire i test da Eclipse, senza ans problemi. hanno appena occure, se chiamo "mvn install", per esempio

+0

Il manufatto selenio-server ha una dipendenza per il servlet-API-2.5 artefatto, che si dovrebbe escludere, se il progetto verrà eseguito all'interno di un contenitore di applicazioni web - Da Selenio hq.org. –

+0

Anche perché è necessaria la dipendenza da selenio-api? –

+0

Ho appena provato alcune cose. Ora ho aggiunto l'esclusione e cancellato la dipendenza da selenio-api, ma il problema è sempre lo stesso – kirschmichel

risposta

5

Ho scoperto dov'era il problema.

Ho caricato alcune estensioni da aggiungere al FirefoxProfile che utilizzo per creare un'istanza di FireFoxDriver. Questi plugin sono ubicati sotto Java/main/resources. In Eclipse tutto ha funzionato bene, ma non ho potuto accedere a questi plugin tramite Maven. Dopo aver copiato questi file in una cartella temporanea e averli caricati da lì, ha funzionato anche da Maven.

Grazie per il vostro aiuto

3

Cercando L'aggiunta di questo al vostro pom

AGGIORNAMENTO:

<dependency> 
    <groupId>org.seleniumhq.webdriver</groupId> 
    <artifactId>selenium-firefox-driver</artifactId> 
    <version>2.XX.X</version> 
</dependency> 

<dependency> 
    <groupId>org.seleniumhq.selenium</groupId> 
    <artifactId>selenium-server</artifactId> 
    <version>2.XX.X</version> 
</dependency> 
+0

l'ultima versione che ho trovato era 0.9.7376. dopo aver aggiunto questo al mio pom, c'è ancora lo stesso problema – kirschmichel

+0

Scusa Il mio male mi sono dimenticato di aggiornare la versione. –

+1

anche con questa versione, l'errore si verifica ancora – kirschmichel

26

Quando incontro questo errore è di solito una delle due cose.

versione selenio non supporta la versione del browser doppio controllo delle versioni Selenio/navigatore sono gli stessi quando correva da Eclipse vs Maven. Controllo doppio Eclipse e Maven sono configurati per utilizzare la stessa versione di selenio. Questo si è verificato per me quando il mio browser si aggiorna automaticamente, quindi l'ho spento nel browser.

test selenio sono in esecuzione in modalità headless improbabile se il mvn eseguire manualmente sulla stessa macchina di Eclipse. Questo è avvenuto per me durante l'esecuzione di Selenium tramite Maven sul mio server Jenkins. Il server Jenkins funzionava in modalità headless. Mi ci è voluto un minuto per capire le cose senza testa, penso di aver impostato una variabile env di DISPLAY in Linux o qualcosa del genere.

+0

Grazie per la tua risposta Matthew, ma ho fatto il primo passo un sacco di volte per essere sicuro e il secondo non mi va bene, perché eseguo i test sulla stessa macchina fisica – kirschmichel

+2

Dopo aver impostato la variabile env DISPLAY, il problema è stato risolto? Penso di incontrare lo stesso problema. – jlars62

+0

DISPLAY risolverlo. Inoltre, se funziona con un monitor collegato o con il driver HtmlUnit, è probabile che si tratti di un problema headless. –

0

Se hai aggiornato sia Firefox e selenio per le versioni più recenti nel tentativo di risolvere questo problema, e si sta ancora affrontando il problema, si può avere aggiornato Firefox utilizzando "Riavvia per aggiornare ".

Arresta Firefox e assicurati che l'eseguibile di Firefox non sia più in esecuzione. Quindi prova il tuo test. Dovrebbe funzionare ora.

Sto indovinando questo è legato a quando esattamente il binario Firefox si aggiorna quando si utilizza "Riavvia per aggiornare"

1

Abbiamo avuto un problema simile che è apparso dopo gli aggiornamenti di Linux. Abbiamo testato molte combinazioni di versioni di selenio (2.42.2 e 2.43.1) e firefox (27.0.1 a 32.0.2), ma il problema era sempre presente.

Siamo in OpenMandriva e il progetto è in Eclipse e Maven.

abbiamo trovato una soluzione per noi, che doveva sostituire seguente Maven dipendenza

<dependency> 
     <groupId>org.seleniumhq.selenium</groupId> 
     <artifactId>selenium-java</artifactId> 
     <version>2.43.1</version> 
    </dependency> 

da tutti quelli seguenti:

<dependency> 
     <groupId>org.seleniumhq.selenium</groupId> 
     <artifactId>selenium-firefox-driver</artifactId> 
     <version>2.43.1</version> 
    </dependency> 

    <dependency> 
     <groupId>org.seleniumhq.selenium</groupId> 
     <artifactId>selenium-support</artifactId> 
     <version>2.43.1</version> 
    </dependency> 

    <dependency> 
     <groupId>org.seleniumhq.selenium</groupId> 
     <artifactId>selenium-api</artifactId> 
     <version>2.43.1</version> 
    </dependency> 

    <dependency> 
     <groupId>org.apache.commons</groupId> 
     <artifactId>commons-lang3</artifactId> 
     <version>3.0</version> 
    </dependency> 

    <dependency> 
     <groupId>org.apache.httpcomponents</groupId> 
     <artifactId>httpclient</artifactId> 
     <version>4.3.5</version> 
    </dependency> 

Mi chiedo se questa soluzione è solo nasconde il vero problema?

-2

Lo stesso problema si verifica anche quando non c'è spazio a sinistra sul disco in cui si trova la cartella della cache di Firefox. Basta liberare lo spazio e lanciare i tuoi script!

0

ho avuto questo problema con Firefox 36, anche le persone stavano affrontando lo stesso in 35 e 44.

Per concludere, aggiornare il tuo Firefox a 37 o downgrade a qualcosa di meno di 33.

-1

Non riesci a trovare il percorso firefoxbinary. Si prega di impostare il percorso firefox prima di utilizzare il driver firefox.

System.setProperty("webdriver.firefox.bin", "C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe"); 
0

Dopo aver combattuto per un po 'e provare la maggior parte (se non tutti) delle opzioni elencate qui, ho finalmente sono liberato di questo errore eliminando un JAR inutilizzato - ios-server-0.6.5-jar-with-dependencies.jar nel mio percorso di generazione, e utilizzando una combinazione di FF34 e vasi di selenio 2.48.2.

Volevo solo postare questo come un'altra opzione nel caso in cui qualcuno si imbatte in questo problema debilitante.

0
my recommendation is 

    ===> switch to firefox version 50.0 [latest One] , 

    ===> download the gecko driver from [.](https://github.com/mozilla/geckodriver/releases) and 

    ===> Selenium version 3.0.1 
    <dependency> 
       <groupId>org.seleniumhq.selenium</groupId> 
       <artifactId>selenium-java</artifactId> 
       <version>3.0.1</version> 
    </dependency> 

    ==> On your Code 
private WebDriver driver; 
System.setProperty("webdriver.gecko.driver", "PATH to GECKO DRIVER"); 
     driver = new FirefoxDriver(); 

    and yes you see the below output in your console : 


    Dec 17, 2016 6:40:45 PM org.openqa.selenium.remote.ProtocolHandshake createSession 
    INFO: Attempting bi-dialect session, assuming Postel's Law holds true on the remote end 
    14819XXXXXXX5 mozprofile::profile INFO Using profile path C:\Users\User\AppData\Local\XXXXX\rust_XXXprofile.OXXXXXXXXXXX7S 
    148XXXXXXXXX0 geckodriver::marionette INFO Starting browser C:\Program Files\Mozilla Firefox\firefox.exe 
    148XXXXXXXXX1 geckodriver::marionette INFO Connecting to Marionette on localhost:XXXXXXX 
    148198XXXX077 Marionette INFO Listening on port 53532 
    Dec 17, 2016 6:40:55 PM org.openqa.selenium.remote.ProtocolHandshake createSession 
    INFO: Detected dialect: W3C 
    [Child 4104] ###!!! ABORT: Aborting on channel error.: file c:/builds/moz2_slave/m-rel-w32-00000000000000000000/build/src/ipc/glue/MessageChannel.cpp, line XXXX 
    Dec 17, 2016 6:41:13 PM org.openqa.selenium.os.UnixProcess destroy 
Problemi correlati