Obtenir java.lang.IllegalStateException même après l'ajout de la propriété set webdriver


Je reçois Exception:

in thread "main" 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
    at com.google.common.base.Preconditions.checkState(Preconditions.java:199)
    at org.openqa.selenium.remote.service.DriverService.findExecutable(DriverService.java:109)
    at org.openqa.selenium.chrome.ChromeDriverService.access$0(ChromeDriverService.java:1)
    at org.openqa.selenium.chrome.ChromeDriverService$Builder.findDefaultExecutable(ChromeDriverService.java:137)
    at org.openqa.selenium.remote.service.DriverService$Builder.build(DriverService.java:296)
    at org.openqa.selenium.chrome.ChromeDriverService.createDefaultService(ChromeDriverService.java:88)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:116)
    at SeleniumFirefox.main(SeleniumFirefox.java:11)

Ci-dessous est le code utilisé SeleniumFirefox.java :

 import org.openqa.selenium.WebDriver;
 import org.openqa.selenium.chrome.ChromeDriver;
 org.openqa.selenium.WebDriver;
 import org.openqa.selenium.WebElement;

 public class SeleniumFirefox {

   public static void main(String[] args) {
    // TODO Auto-generated method stub
    System.setProperty("webdriver.chromedriver.driver",
           "C://Users//balwinder//Desktop//chromedriver.exe");
    WebDriver driver = new ChromeDriver();

/*try {
    Thread.sleep(5000);
} catch(InterruptedException ex) {
    System.out.println(ex.getMessage());
}*/

   }}
Author: user861594, 2016-05-24

2 answers

Définir webdriver.chrome.driver au lieu de webdriver.chromedriver.driver

 System.setProperty("webdriver.chromedriver.driver",
           "C://Users//balwinder//Desktop//chromedriver.exe");

Devrait être:

System.setProperty("webdriver.chrome.driver",
           "C:\\Users\\balwinder\\Desktop\\chromedriver.exe");

OU

System.setProperty("webdriver.chrome.driver",
           "C:/Users/balwinder/Desktop/chromedriver.exe");

REMARQUE : cela ne fonctionnera que si vous définissez d'abord la propriété système, puis instanciez le pilote Chrome..

 4
Author: user861594, 2018-01-26 23:29:14

Une autre solution sans {[0] } est simplement d'ajouter un dossier avec chromedriver.exe au CHEMIN (si quelqu'un ne sait pas comment - google "définir la variable path").

Vérifier que cette approche fonctionne, vous pouvez mettre chromedriver.exe à C:\Windows\System32 dossier.

 0
Author: Alexander P., 2018-06-02 19:45:44