Comment exécuter des cas de test Selenium WebDriver dans Chrome?

J'ai essayé ceci

WebDriver driver = new ChromeDriver();

Mais je reçois l'erreur comme

Échec des tests: setUp (com.TEST): le chemin d'accès à l'exécutable du pilote doit être défini par le webdriver.chrome.propriété système du pilote; pour plus d'informations, voir http://code.google.com/p/selenium/wiki/ChromeDriver . la dernière version peut être téléchargée à partir de http://code.google.com/p/chromedriver/downloads/list

Comment puis-je faire Chrome pour tester les cas de test Selenium-WebDriver?

139
demandé sur Vince Bowdren 2012-12-05 17:52:34

10 réponses

Vous devez télécharger le pilote exécutable depuis: ChromeDriver Télécharger

Ensuite, tout ce que vous devez faire est d'utiliser ce qui suit avant de créer l'objet Pilote (déjà affiché dans le bon ordre):

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

Ceci a été extrait du guide le plus utile à: https://sites.google.com/a/chromium.org/chromedriver/

226
répondu aimbire 2017-03-30 13:53:54

Télécharger la version mise à jour du pilote chrome de ici

public class Chrome {

  public static void main(String[] args) {

        System.setProperty("webdriver.chrome.driver", "E://chromedriver.exe");
        WebDriver driver = new ChromeDriver();              
        driver.get("http://www.google.com");

    }

}

Vous pouvez aussi voir la réponse après avoir cliqué sur ici

21
répondu Ankit jain 2016-04-02 05:21:38

Vous devez télécharger le chromeDriver dans un dossier, et ajouter ce dossier dans votre variable PATH. Vous devrez redémarrer votre console pour le faire fonctionner.

17
répondu Fabrice31 2012-12-06 07:46:44

Trouver la dernière version de chromedriver ici. Une fois téléchargé, décompressez-le à la racine de votre installation python, par exemple C:/Program Files/Python-3.5, et c'est tout. Vous n'avez même pas besoin de spécifier le chemin n'importe où et/ou d'Ajouter chromedriver à votre chemin ou similaire. Je l'ai juste fait sur une installation Python propre et cela fonctionne.

7
répondu tagoma 2015-11-29 18:59:40

Si vous utilisez homebrew sur un MacOS, vous pouvez utiliser la commande:

brew install chromedriver

Cela devrait fonctionner correctement après cela sans autre configuration.

7
répondu swanhella 2017-05-10 00:01:04

Vous devez installer le pilote chrome. Vous pouvez installer ce paquet en utilisant nugget comme indiqué ci-dessous

5
répondu Prathap Kudupu 2015-08-30 17:16:37

Vous pouvez utiliser le code ci-dessous pour exécuter des cas de test dans Chrome en utilisant Selenium web-driver:

import java.io.IOException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class ChromeTest {

    /**
     * @param args
     * @throws InterruptedException
     * @throws IOException 
     */
    public static void main(String[] args) throws InterruptedException, IOException {
        // Telling the system where to find the Chrome driver
        System.setProperty(
                "webdriver.chrome.driver",
                "E:/chromedriver_win32/chromedriver.exe");

        WebDriver webDriver = new ChromeDriver();

        // Open google.com
        webDriver.navigate().to("http://www.google.com");

        String html = webDriver.getPageSource();

        // Printing result here.
        System.out.println(html);

        webDriver.close();
        webDriver.quit();
    }
}
5
répondu Rakesh Chaudhari 2016-09-30 19:33:21

Téléchargez la dernière version du pilote chrome et utilisez ce code:

System.setProperty("webdriver.chrome.driver", " path of chromedriver.exe");
WebDriver driver= new ChromeDriver();
driver.manage().window().maximize();
Thread.sleep(10000);
driver.get("http://stackoverflow.com");
4
répondu Anuj Teotia 2017-06-23 05:31:07

Toutes les réponses ci-dessus sont correctes, voici la petite plongée dans le problème et la solution.

Le constructeur du pilote dans selenium par exemple

WebDriver driver = new ChromeDriver();

Recherche l'exécutable du pilote, dans ce cas le pilote chrome recherche l'exécutable du pilote chrome, dans le cas où le service est incapable de trouver l'exécutable, l'exception est levée

C'est D'où vient l'exception (notez la méthode check state)

 /**
   *
   * @param exeName Name of the executable file to look for in PATH
   * @param exeProperty Name of a system property that specifies the path to the executable file
   * @param exeDocs The link to the driver documentation page
   * @param exeDownload The link to the driver download page
   *
   * @return The driver executable as a {@link File} object
   * @throws IllegalStateException If the executable not found or cannot be executed
   */
  protected static File findExecutable(
      String exeName,
      String exeProperty,
      String exeDocs,
      String exeDownload) {
    String defaultPath = new ExecutableFinder().find(exeName);
    String exePath = System.getProperty(exeProperty, defaultPath);
    checkState(exePath != null,
        "The path to the driver executable must be set by the %s system property;"
            + " for more information, see %s. "
            + "The latest version can be downloaded from %s",
            exeProperty, exeDocs, exeDownload);

    File exe = new File(exePath);
    checkExecutable(exe);
    return exe;
  }

Voici la méthode check state qui lève l'exception

  /**
   * Ensures the truth of an expression involving the state of the calling instance, but not
   * involving any parameters to the calling method.
   *
   * <p>See {@link #checkState(boolean, String, Object...)} for details.
   */
  public static void checkState(
      boolean b,
      @Nullable String errorMessageTemplate,
      @Nullable Object p1,
      @Nullable Object p2,
      @Nullable Object p3) {
    if (!b) {
      throw new IllegalStateException(format(errorMessageTemplate, p1, p2, p3));
    }
  }

SOLUTION : définissez la propriété système avant de créer l'objet pilote comme suit

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

Voici L'extrait de code (pour chrome et firefox) où le service de pilote recherche l'exécutable du pilote:

Chrome:

   @Override
    protected File findDefaultExecutable() {
      return findExecutable("chromedriver", CHROME_DRIVER_EXE_PROPERTY,
          "https://github.com/SeleniumHQ/selenium/wiki/ChromeDriver",
          "http://chromedriver.storage.googleapis.com/index.html");
    }

FireFox:

@Override
 protected File findDefaultExecutable() {
      return findExecutable(
        "geckodriver", GECKO_DRIVER_EXE_PROPERTY,
        "https://github.com/mozilla/geckodriver",
        "https://github.com/mozilla/geckodriver/releases");
    }

Où CHROME_DRIVER_EXE_PROPERTY = " webdriver.chrome.pilote" et GECKO_DRIVER_EXE_PROPERTY = " webdriver.Gecko.le pilote"

Similaire est le cas pour les autres navigateurs, voici l'instantané de la liste de l'implémentation du navigateur disponible

entrez la description de l'image ici

0
répondu chuha.billi 2017-11-08 12:19:39

Téléchargez l'exe de chromedriver et extrayez-le sur l'emplacement actuel du projet. Voici le lien, où nous pouvons télécharger la dernière version de chromedriver.

Https://sites.google.com/a/chromium.org/chromedriver/

Voici le code simple pour le navigateur de lancement et accédez à l'url.

System.setProperty("webdriver.chrome.driver", "path of chromedriver.exe");

WebDriver driver = new ChromeDriver();

driver.get("https://any_url.com");
-2
répondu ER.swatantra 2018-04-27 06:19:26