J'essaie d'utiliser la dernière version 3.4.0 de Selenium dans un projet maven. J'ai importé tous les pots de Selenium en utilisant la dépendance ci-dessous: -
<dependency>
<groupId>org.seleniumhq.Selenium</groupId>
<artifactId>Selenium-Java</artifactId>
<version>3.4.0</version>
</dependency>
Le problème est que je suis incapable de résoudre les dépendances dans mon projet dans Eclipse pour le code ci-dessous dans la méthode principale: -
public class FirefoxTest {
public static void main(String[] args) {
FirefoxOptions options = new FirefoxOptions();
options.setBinary("C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe"); //This is the location where you have installed Firefox on your machine
FirefoxDriver driver = new FirefoxDriver(options);
driver.get("http://www.google.com");
}
}
Qu'est-ce que je rate? Eclipse ne parvient pas à résoudre le type FirefoxDriver en dépendances. S'il vous plaît aider.
Pour utiliser Selenium 3.4.0 et Mozilla Firefox 53.x, vous devez télécharger la dernière version de geckodriver v0.16.1 à partir de ici . Enregistrez-le dans votre ordinateur et indiquez le chemin absolu du pilote geckodriver dans votre code.
Vérifiez que vous avez mis à jour le fichier pom.xml avec la dépendance requise comme suit:
<dependency>
<groupId>org.seleniumhq.Selenium</groupId>
<artifactId>Selenium-Java</artifactId>
<version>3.4.0</version>
</dependency>
Il est recommandé d'utiliser l'interface WebDriver
plutôt que d'utiliser l'implémentation FirefoxDriver
.
Votre code ressemblera à:
System.out.println("Welcome to Maven World");
System.setProperty("webdriver.gecko.driver", "C:\\Utility\\BrowserDrivers\\geckodriver.exe");
WebDriver driver = new FirefoxDriver();
driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS);
driver.navigate().to("http://www.google.com");
Fournissez les commandes suivantes pour vider les dépendances précédentes, installer les nouvelles dépendances et exécuter votre test:
>mvn clean
>mvn install
>mvn test
Je suis à peu près sûr que l'instanciation du pilote Firefox a changé dans la version 3 de Selenium. Veuillez utiliser ce code:
System.setProperty("webdriver.firefox.driver","C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe");
WebDriver driver = new FirefoxDriver();
S'il vous plaît également lire plus à ce sujet ici
Vous trouverez également le code de test de travail ici
Vérifiez également que vous avez inclus les instructions d'importation correctes en haut de votre classe:
import org.openqa.Selenium.WebDriver;
import org.openqa.Selenium.firefox.FirefoxDriver;
J'ai rencontré le même problème et je cherchais une solution depuis longtemps. Même si vous changez le code ou les dépendances, votre code utilisera toujours les bocaux Selenium de façon erronée, car votre code a déjà été construit et de mauvais bocaux Selenium sont affectés.
Suivez ces étapes:
.m2
où il se trouve..m2
, ouvrez-le, accédez au référentiel, puis au dossier org.pom.xml
, collez la dépendance Selenium 3.4.0 et supprimez tous vos 3.5.3 ou autres éléments (seule la dépendance 3.4.0 suffit amplement). Supprimez à nouveau toutes les autres dépendances au sélénium.ajoutez ceci dans votre pom.xml
<!-- https://mvnrepository.com/artifact/org.seleniumhq.Selenium/selenium-firefox-driver -->
<dependency>
<groupId>org.seleniumhq.Selenium</groupId>
<artifactId>Selenium-firefox-driver</artifactId>
<version>3.13.0</version>
</dependency>
iam obtenir de ici
Je n'ai pas pu trouver les coordonnées Maven pour le pilote de gecko, qui est maintenant requis pour Selenium 3.4+. Quelqu'un a probablement créé un référentiel public mais il reste simple de télécharger les pilotes et de les ajouter directement au projet. Pour éviter les problèmes de chemin statique (conserver ces pilotes dans le projet afin que tout ne se répande pas et que tout le projet puisse être envoyé sans compliquer la configuration), il est préférable de placer ces pilotes dans le dossier de votre projet src/main/resources
.
Téléchargez les pilotes à partir de: https://github.com/mozilla/geckodriver/releases (téléchargements de pilotes ARM, Linux, Mac et Windows)
Si vous travaillez avec plusieurs systèmes d'exploitation, vous pouvez choisir le pilote utilisé en fonction du système d'exploitation: Comment puis-je déterminer par programme le système d'exploitation en Java?
package com.kenmcwilliams.demo;
import Java.io.IOException;
import Java.nio.file.FileSystems;
import Java.nio.file.Path;
import org.openqa.Selenium.By;
import org.openqa.Selenium.WebDriver;
import org.openqa.Selenium.WebElement;
import org.openqa.Selenium.firefox.FirefoxDriver;
import org.openqa.Selenium.support.ui.ExpectedCondition;
import org.openqa.Selenium.support.ui.WebDriverWait;
/**
*
* @author ken
*/
public class App {
public static void main(String[] args){
//if you're going to use more than one OS, you should make this switchable based on OS.
Path path = FileSystems.getDefault().getPath("src/main/resources/geckodriver");
System.setProperty("webdriver.gecko.driver",path.toString());
WebDriver driver = new FirefoxDriver();
//from here down is just a working example...
driver.get("http://www.google.com");
WebElement element = driver.findElement(By.name("q"));
element.sendKeys("Cheese!");
element.submit();
System.out.println("Page title is: " + driver.getTitle());
(new WebDriverWait(driver, 10)).until(new ExpectedCondition<Boolean>() {
public Boolean apply(WebDriver d) {
return d.getTitle().toLowerCase().startsWith("cheese!");
}
});
System.out.println("Page title is: " + driver.getTitle());
driver.quit();
}
}
Téléchargez le pilote Gecko: https://github.com/mozilla/geckodriver/releases
System.setProperty("webdriver.gecko.driver", "c:\\geckodriver.exe");
WebDriver driver = new MarionetteDriver();
driver.get("http://www.google.com");
utilisez la dépendance ci-dessous pour télécharger Selenium.
<dependency>
<groupId>org.seleniumhq.Selenium</groupId>
<artifactId>Selenium-Java</artifactId>
<version>3.4.0</version>
</dependency>
Une fois les dépendances téléchargées. Effectuer un projet de construction.
Cela résoudra votre problème