121

J'ai essayéComment exécuter des scénarios de test Selenium WebDriver dans Chrome?

WebDriver driver = new ChromeDriver(); 

Mais je reçois l'erreur comme

essais ayant échoué: setUp (TestCom): Le chemin vers l'exécutable du pilote doit être réglé par le webdriver.chrome propriété du système .driver; 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 de Chrome pour tester les scénarios de test Selenium-WebDriver?

+0

Il est utile de savoir si vous avez téléchargé le pilote chrome sélénium à l'adresse http://code.google.com/p/chromedriver/downloads/list et si vous l'avez ajouté à la bibliothèque dans eclipse sous "Ajouter des fichiers externes". avant d'exécuter votre code selenium-java. – Hemanth

Répondre

204

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

Ensuite, tout ce que vous devez faire est d'utiliser ce qui suit avant la création de l'objet conducteur (déjà indiqué dans l'ordre):

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

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

+1

super merci! cela a fonctionné pour moi bien! –

+0

@aimbire: Hey je suis confronté au même problème. J'ai fait la même chose que vous, mais j'ai eu cette erreur. "java.lang.IllegalStateException: L'exécutable du pilote n'existe pas: D: \ selenimPRJarg1 \ chromedriver.exe" Est-ce que je manque quelque chose "? – kTiwari

+0

Vous devez télécharger Selenium Standalone Server à partir d'ici http: //docs.seleniumhq.org/download /, et ajoute le fichier jar en tant que dépendance à votre projet Java. – dikirill

15

Vous devez télécharger le pilote chromeDriver dans un dossier et ajouter ce dossier dans votre variable PATH. Vous devrez redémarrer votre console pour que cela fonctionne.

19

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

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 également voir la réponse après avoir cliqué sur here

+3

Maintenant, c'est une solution encombrante. Je vous conseille de changer cela si c'est ce que vous utilisez de nos jours. – aimbire

+1

Le lien de téléchargement est maintenant obsolète. –

-2

Vous devez télécharger le fichier exe du pilote Chrome. Vous pouvez télécharger depuis ce lien.

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

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

ChromeDriver driver = new ChromeDriver();  
+0

Téléchargez le chromedriver et extrayez-le. Ensuite, créez un dossier dans votre projet et nommez-le comme chromedriver et gardez le fichier .exe dedans. et utilisez ce chemin. C'est l'exemple de code simple. 'code' System.setProperty ("webdriver.chrome.driver", System.getProperty ("user.dir") + "\\ chromedriver \\ chromedriver.exe"); \t \t Pilote WebDriver = nouveau ChromeDriver(); \t \t driver.get ("http://www.google.co.in"); \t \t WebElement searchbox = driver.findElement (By.name ("q")); \t \t searchbox.sendKeys ("meilleurs tutoriels vidéo au sélénium gratuits"); \t \t searchbox.submit(); – vinay

+0

S'il vous plaît, considérons mettre à jour cette réponse avec l'information supplémentaire commentée par Vinay. – rcdmk

4

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

+1

Cela pourrait être le seul, mais la version sur NuGet est trop vieux: 2.10.0 du 13 oct. 2014 –

+0

Rated de nouveau le 23 mars. Impossible d'utiliser sur le dernier Chrome. – willem

6

Trouver la dernière version de chromedriverhere. 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 ajouter chromedriver à votre chemin ou similaire. Je viens de le faire sur une installation Python propre et cela fonctionne.

+2

mauvais conseil ... ne pas polluer votre installation python –

+0

aussi, l'OP n'a jamais spécifié Python –

4

Vous pouvez utiliser le code ci-dessous pour exécuter les cas de test dans Chrome en utilisant web-pilote Sélénium:

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

Télécharger la dernière version du pilote de chrome et utiliser 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"); 
5

Si vous re en utilisant homebrew sur un MacOS, vous pouvez utiliser la commande:

brew install chromedriver 

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

0

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

Le constructeur du pilote en sélénium par exemple

WebDriver driver = new ChromeDriver(); 

recherches pour le fichier exécutable du pilote, dans ce cas, les recherches du pilote de chrome pour exécutable pilote de chrome, dans le cas où le service ne parvient pas à trouver l'exécutable l'exception est levée

c'est là l'exception vient de (note 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; 
    } 

ce qui suit est la vérification sta Procédé te 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éfinir 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(); 

suivant est le fragment de code (pour le chrome et firefox) lorsque la recherche de services de driver pour 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, à la suite est l'instantané de la liste de l'implémentation de navigateur disponible

enter image description here

Questions connexes