0

In meinem pom Skript ausgeführt wird, ich habe:ChromeDriver von Maven Repo nicht in Testskript

<dependency> 
    <groupId>org.seleniumhq.selenium</groupId> 
    <artifactId>selenium-java</artifactId> 
    <version>2.53.1</version> 
</dependency> 

Die Repository Beschreibung auf MVNrepository listen mehr Kompilierung Abhängigkeiten, einschließlich Selen-ChromeDriver, Selen-Firefox -Driver usw. kann ich Firefox-Treiber Skripts erfolgreich ausgeführt, aber wenn ich das gleiche Skript mit dem Objekt

ChromeDriver driver = new ChromeDriver();

zu laufen versuchen

bekomme ich folgende Fehlermeldung:

java.lang.IllegalStateException: The path to the driver executable must be set by the webdriver.chrome.driver system property; for more information, see https://github.com/SeleniumHQ/selenium/wiki/ChromeDriver . The latest version can be downloaded from http://chromedriver.storage.googleapis.com/index.html

Es funktioniert ohne Firefox-Treiber herunterladen zu müssen (das ist der Punkt des pom Skript); ist es anders für Chrome-Treiber? Das Bild unten zeigt, dass es aus dem Maven-Skript kompiliert wird.

Maven - ChromeDriver

Das Testskript:

import org.junit.Test; 
import org.openqa.selenium.chrome.ChromeDriver; 
import static org.junit.Assert.assertTrue; 

public class MyFirstTest { 

    @Test 
    public void googleTest() { 
     ChromeDriver driver = new ChromeDriver(); 
     driver.get("https://www.google.com/"); 
     assertTrue(driver.getTitle().equals("Google")); 
     driver.quit(); 
    } 
} 

Antwort

0

Ja, es ist verschieden von Firefox, und die Differenz wird erklärt auf a page referenced by exception:

The ChromeDriver consists of three separate pieces. There is the browser itself ("chrome"), the language bindings provided by the Selenium project ("the driver") and an executable downloaded from the Chromium project which acts as a bridge between "chrome" and the "driver". This executable is called "chromedriver", but we'll try and refer to it as the "server" in this page to reduce confusion.

So um ChromeDriver zu instanziiert, Sie muss

  1. herunterladen ChromeDriver Binary für Ihre Plattform aus this page,
  2. seinen Pfad angeben, wann der Fahrer Instanziieren (oder sonst, haben sie definiert in PATH). Zum Beispiel:

    System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver"); 
    ChromeDriver driver = new ChromeDriver(); 
    

    Alle verschiedenen Optionen, wie ChromeDriver binären angeben werden here diskutiert.

  3. Chrome selbst sollte einen definierten Speicherort haben, damit ChromeDriver es findet. Wie das zu tun ist, wird erklärt here