web-dev-qa-db-fra.com

Comment démarrer FireFoxDriver avec Selenium 3.4.0 avec Maven?

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.

5
Bharat Nanwani

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

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;
1
JDTLH9

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:

  1. Cliquez avec le bouton droit de la souris sur les dépendances Maven de votre projet Eclipse, cliquez sur Configurer les dépendances Maven et déroulez les dépendances Maven dans votre liste et identifiez le dossier .m2 où il se trouve.
  2. Une fois que vous avez identifié le dossier .m2, ouvrez-le, accédez au référentiel, puis au dossier org.
  3. Dans ce dossier, supprimez tous vos dossiers Selenium.
  4. Retournez dans votre fichier 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.
  5. Enfin, sauvegardez votre fichier et construisez-le à partir de la section du projet.
1
ANVESH POLURI

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

0
user8305604

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();
    }
}
0
Quaternion

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");
0
Roberto

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

0
jyothish kumar