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
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
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.
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>
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?
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.
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.
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>
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
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"