web-dev-qa-db-ja.com

プロパティの設定Webdriverを追加した後でもJava.lang.IllegalStateExceptionを取得する

私は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)

以下は使用されるコードです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());
}*/

   }}
5

セットする 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ドライバをインスタンス化する場合にのみ機能します。

5
user861594

System.setPropertyを使用しない別の解決策は、chromedriver.exeを含むフォルダーをPATHに追加することです(誰かが方法を知らない場合-google "パス変数を設定")。

このアプローチが機能することを確認するには、chromedriver.exeC:\Windows\System32フォルダーに配置します。

0
Alexander P.