it-roy-ru.com

Получение Java.lang.IllegalStateException даже после добавления набора свойств веб-драйвера

Я получаю Исключение:

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)

Ниже приведен код, который используется 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
balvinder dhillon

установите webdriver.chrome.driver вместо webdriver.chromedriver.driver

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

Должно быть:

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

OR

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

NOTE: это будет работать, только если вы сначала устанавливаете системное свойство, а затем создаете экземпляр драйвера Chrome.

4
user861594

Другое решение без System.setProperty - просто добавьте папку с chromedriver.exe в PATH (Если кто-то не знает как, - google "установить переменную пути").

Чтобы убедиться, что этот подход работает, вы можете поместить chromedriver.exe в папку C:\Windows\System32.

0
Alexander P.