it-swarm.com.de

Wie starte ich FireFoxDriver mit Selenium 3.4.0 mit Maven?

Ich versuche, die neueste Version 3.4 von Selenium in einem Maven-Projekt zu verwenden. Ich habe alle Selenium-Gläser mit der folgenden Abhängigkeit importiert: -

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

Das Problem ist, dass ich keine Abhängigkeit in meinem Projekt in Eclipse lösen kann.

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");
    }
}

Was vermisse ich? Eclipse kann den FirefoxDriver-Typ nicht in Abhängigkeiten auflösen. Bitte helfen.

5
Bharat Nanwani

Um mit Selenium 3.4.0 & Mozilla Firefox 53.x arbeiten zu können, müssen Sie den neuesten Geckodriver v0.16.1 von hier herunterladen. Speichern Sie es in Ihrem Computer und geben Sie den absoluten Pfad des Geckos in Ihrem Code an. 

Stellen Sie sicher, dass Sie die Datei pom.xml wie folgt mit der erforderlichen Abhängigkeit aktualisiert haben:

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

Es wird empfohlen, die WebDriver-Schnittstelle zu verwenden, anstatt die FirefoxDriver-Implementierung zu verwenden.

Ihr Code wird folgendermaßen aussehen:

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

Geben Sie die folgenden Befehle ein, um die vorherigen Abhängigkeiten zu entfernen, die neuen Abhängigkeiten zu installieren und den Test auszuführen:

>mvn clean
>mvn install
>mvn test 
3
DebanjanB

Ich bin mir ziemlich sicher, dass sich die Version des Firefox-Treibers in Version 3 von Selenium geändert hat. Bitte benutzen Sie diesen Code:

System.setProperty("webdriver.firefox.driver","C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe");
WebDriver driver = new FirefoxDriver();

Bitte lesen Sie auch mehr darüber hier

Dort finden Sie auch Funktionsprüfcode hier

Bitte überprüfen Sie auch, ob Sie die korrekten Importanweisungen oben in Ihrer Klasse angegeben haben:

import org.openqa.Selenium.WebDriver;
import org.openqa.Selenium.firefox.FirefoxDriver;
1
JDTLH9

Ich stand vor demselben Problem und habe lange nach einer Lösung gesucht. Selbst wenn Sie Code oder Abhängigkeiten ändern, nimmt der Code die falschen Selenium-Gläser an, da Ihr Code bereits erstellt wurde und falsche Selenium-Gläser zugewiesen wurden.

Folge diesen Schritten:

  1. Klicken Sie mit der rechten Maustaste auf die Maven-Abhängigkeiten in Ihrem Eclipse-Projekt, klicken Sie auf Maven-Abhängigkeiten konfigurieren, und legen Sie die Maven-Abhängigkeiten aus der Liste herunter. Geben Sie dann den Ordner .m2 an, an dem sich die Maven-Abhängigkeiten befinden.
  2. Wenn Sie den .m2-Ordner identifiziert haben, öffnen Sie ihn, gehen Sie zum Repository und gehen Sie zum org-Ordner.
  3. In diesem Ordner löschen Sie alle Ihre Selenium-Ordner.
  4. Gehen Sie zurück zu Ihrer pom.xml-Datei, fügen Sie die Selenium 3.4.0-Abhängigkeit ein und löschen Sie alle Ihre 3.5.3 oder andere Dinge (nur 3.4.0-Abhängigkeit ist mehr als genug). Entferne noch einmal alle anderen Selen-Abhängigkeiten.
  5. Speichern Sie schließlich Ihre Datei und erstellen Sie sie aus dem Projektabschnitt. Nun sollten Sie gut damit fertig sein.
1
ANVESH POLURI

fügen Sie dies in Ihrer pom.xml hinzu

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

ich komme von hier

0
user8305604

Ich konnte keine Maven-Koordinaten für den Geckotreiber finden, der jetzt für Selenium 3.4+ erforderlich ist. Wahrscheinlich hat jemand ein öffentliches Repository erstellt, es ist jedoch immer noch einfach, die Treiber herunterzuladen und direkt zum Projekt hinzuzufügen. Um statische Pfadprobleme zu vermeiden (halten Sie diese Treiber im Projekt, damit später keine Probleme auftreten und das gesamte Projekt gesendet werden kann, ohne dass die Einrichtung kompliziert werden muss), legen Sie diese Treiber am besten im Ordner src/main/resources Ihres Projekts ab. 

Laden Sie die Treiber von: https://github.com/mozilla/geckodriver/releases herunter (ARM-, Linux-, Mac- und Windows-Treiberdownloads)

Wenn Sie mit mehreren Betriebssystemen arbeiten, möchten Sie möglicherweise den verwendeten Treiber basierend auf dem Betriebssystem wechseln: Wie bestimme ich das Betriebssystem in Java programmgesteuert?

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

Gecko-Treiber herunterladen: 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

verwenden Sie die nachstehende Abhängigkeit, um Selenium herunterzuladen.

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

Sobald die Abhängigkeiten heruntergeladen wurden. Build-Projekt durchführen.

Dies wird Ihr Problem beheben

0
jyothish kumar