web-dev-qa-db-fra.com

Obtention de Java.lang.IllegalStateException même après avoir ajouté 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)

Voici 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());
}*/

   }}
4

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");

OR

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

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

4
user861594

Une autre solution sans System.setProperty consiste simplement à ajouter un dossier avec chromedriver.exe à PATH .__ (si quelqu'un ne sait pas comment - google "set path variable").

Pour vérifier que cette approche fonctionne, vous pouvez placer chromedriver.exe dans le dossier C:\Windows\System32.

0
Alexander P.