web-dev-qa-db-fra.com

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

J'ai essayé ça 

WebDriver driver = new ChromeDriver();

Mais je reçois l'erreur comme

Tests ayant échoué: setUp (com.TEST): le chemin d'accès à l'exécutable du pilote doit être défini par la propriété système webdriver.chrome.driver; pour plus d'informations, voir code ici . La dernière version peut être téléchargée à partir de Link

Comment faire en sorte que Chrome teste les scénarios de test Selenium-WebDriver?

146
Prince

Vous devez télécharger le pilote exécutable à partir de: ChromeDriver Download

Il vous suffit ensuite d'utiliser les éléments suivants 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();

Ces informations ont été extraites du guide le plus utile de la documentation ChromeDriver .

235
aimbire

Téléchargez la version mise à jour du pilote chrome à partir de Pilote Chrome Veuillez lire également la note de version Ici Si Chrome Browser est mis à jour, vous devez télécharger le nouveau pilote chormedriver à partir du lien ci-dessus, car il être compact avec la nouvelle version du navigateur. 

 public class chrome 
 {

  public static void main(String[] args) {

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


    driver.get("http://www.google.com");

  }

 }
21
Ankit jain

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 que cela fonctionne.

18
Fabrice31

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

(EDIT) : brew tap homebrew/cask && brew cask install chromedriver

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

8
swanhella

Vous pouvez utiliser le code ci-dessous pour exécuter des scénarios de test dans Chrome à l'aide du pilote Web Selenium:

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();
    }
}
6
Rakesh Chaudhari

Recherchez la dernière version de chromedriverhere . Une fois téléchargée, décompressez-la à la racine de votre installation de python, par exemple C:/Program Files/Python-3.5, et le tour est joué. Vous n'avez même pas besoin de spécifier le chemin/ou ajoutez chromedriver à votre chemin ou similaire ..__ Je viens de le faire sur une installation Python propre et cela fonctionne.

6
tagoma

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

 

6
Prathap Kudupu

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
Anuj Teotia

Toutes les réponses ci-dessus sont correctes. Voici un aperçu complet du problème et de sa solution.

Le constructeur de pilotes 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, au cas où le service ne pourrait pas trouver l'exécutable, l'exception est levée 

c’est d’où vient l’exception (notez la méthode de l’état de contrôle)

 /**
   *
   * @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 d'état de contrôle 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 un objet de 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) dans lequel 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.driver" et GECKO_DRIVER_EXE_PROPERTY = "webdriver.gecko.driver"

similaire est le cas pour les autres navigateurs, ce qui suit est la capture instantanée de la liste de la mise en oeuvre du navigateur disponible 

 enter image description here

0
chuha.billi

Sur Ubuntu, vous pouvez simplement installer le paquetage chromium-chromedriver:

apt install chromium-chromedriver

Sachez que cela installe également une version obsolète de Selenium. Pour installer le dernier sélénium:

pip install Selenium
0
serv-inc