web-dev-qa-db-fra.com

Impossible de se connecter à FirefoxBinary binaire avec Selenium dans Maven

Je lance des tests au sélénium. Quand je les démarre directement depuis Eclipse, tout fonctionne bien. Mais lorsque je les démarre via Maven, l'exception suivante se produit:

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)

J'utilise Firefox 10.0.10 ESR. Je l'ai également essayé avec Selenium 2.25.0.

Voici ma dernière version du 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>

Si je peux vous aider avec plus d'informations, veuillez me le faire savoir.

modifier: pom.xml mis à jour

edit2: Ce qui m'étonne le plus, c'est que je peux exécuter les tests depuis Eclipse sans problème. ils se produisent juste, si j'appelle "mvn install" par exemple

33
kirschmichel

J'ai compris où était le problème.

J'ai chargé quelques extensions à ajouter au profil Firefox que j'utilise pour instancier FireFoxDriver. Ces plugins étaient situés sous Java/main/resources. Dans Eclipse, tout fonctionnait bien, mais je ne pouvais pas accéder à ces plugins via Maven. Après avoir copié ces fichiers dans un dossier temporaire et les avoir chargés à partir de là, cela a même fonctionné depuis Maven.

Merci de votre aide

5
kirschmichel

Lorsque je rencontre cette erreur, c'est généralement l'une des deux choses.

La version Selenium ne prend pas en charge la version du navigateur Vérifiez que les versions Selenium/navigateur sont les mêmes lorsqu'elles sont exécutées depuis Eclipse vs Maven. Vérifiez que Eclipse et Maven sont configurés pour utiliser la même version Selenium. Cela s'est produit pour moi lorsque mon navigateur se met à jour automatiquement, je l'ai donc désactivé dans le navigateur.

Les tests Selenium s'exécutent en mode sans tête Peu probable si vous exécutez manuellement mvn sur la même machine qu'Eclipse. Cela s'est produit pour moi lors de l'exécution de Selenium via Maven sur mon serveur Jenkins. Le serveur Jenkins fonctionnait en mode sans tête. Cela m'a pris une minute pour comprendre les choses sans tête, je pense avoir défini une variable env DISPLAY sous Linux ou quelque chose.

29
Matthew Petty

Essayer d'ajouter ceci à votre pom

MISE À JOUR:

<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> 
3
Abhishek_Mishra

Nous avons eu un problème similaire qui est apparu après les mises à jour Linux. Nous avons testé de nombreuses combinaisons de versions Selenium (2.42.2 et 2.43.1) et firefox (27.0.1 à 32.0.2), mais le problème était toujours présent.

Nous sommes sous OpenMandriva, et le projet est sous Eclipse et Maven.

Nous avons trouvé une solution pour nous, qui était de remplacer la dépendance maven suivante

    <dependency>
        <groupId>org.seleniumhq.Selenium</groupId>
        <artifactId>Selenium-Java</artifactId>
        <version>2.43.1</version>
    </dependency>   

par tous les suivants:

    <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>

Je me demande si cette solution ne fait que cacher le vrai problème?

1
Eric Klumpp

Après avoir combattu cela pendant un certain temps et essayé la plupart (sinon la totalité) des options répertoriées ici, je me suis finalement débarrassé de cette erreur en supprimant un JAR inutilisé - ios-server-0.6.5-jar-with-dependencies.jar dans mon chemin de génération et en utilisant une combinaison de FF34 et pots en sélénium 2.48.2.

Je voulais juste publier ceci comme une autre option au cas où quelqu'un rencontrerait ce problème débilitant.

0
rs79

J'ai eu ce problème avec Firefox 36, les gens étaient également confrontés à la même chose en 35 et 44.

Pour conclure, mettez à niveau votre Firefox à 37 ou rétrogradez-le à moins de 33.

0
Tarek Radwan

Essayez d'utiliser la dernière version du serveur Selenium. Vous devez vérifier la compatibilité entre le navigateur et le serveur Selenium.

    <dependency>
    <groupId>org.seleniumhq.Selenium</groupId>
    <artifactId>Selenium-Java</artifactId>
    <version>3.141.59</version>
    </dependency> 
0
jyoti singh
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
0
ABDUL IMRAN

Si vous avez mis à jour Firefox et Selenium vers les dernières versions en essayant de résoudre ce problème, et que vous êtes toujours confronté au problème, vous avez peut-être mis à jour Firefox en utilisant "Redémarrer pour mettre à jour".

Arrêtez Firefox et assurez-vous que l'exécutable Firefox ne fonctionne plus. Essayez ensuite votre test. Ça devrait marcher maintenant.

Je suppose que cela est lié au moment précis où le binaire Firefox est mis à jour lorsque vous utilisez "Redémarrer pour mettre à jour"

0
Rajesh J Advani