【问题标题】:Getting java.lang.IllegalStateException even after adding set property webdriver即使在添加设置属性 webdriver 后也得到 java.lang.IllegalStateException
【发布时间】:2016-09-21 03:04:42
【问题描述】:

我收到异常:

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

   }}

【问题讨论】:

标签: java selenium selenium-webdriver webdriver selenium-chromedriver


【解决方案1】:

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

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

注意:仅当您首先设置系统属性然后实例化 chrome 驱动程序时才会起作用..

【讨论】:

  • 嗨,我刚刚尝试了上述更改并得到了同样的错误!!
  • 请参考更新的答案,你也有错误的路径分隔符。
【解决方案2】:

没有System.setProperty 的另一种解决方案是将带有chromedriver.exe 的文件夹添加到PATH (如果有人不知道如何 - 谷歌“设置路径变量”)。

要检查这种方法是否有效,您可以将chromedriver.exe 放入C:\Windows\System32 文件夹。

【讨论】:

    【解决方案3】:

    chromedriver.exe 文件的 PATH 设置不正确。 下载 chrome 驱动 zip 文件并将其解压缩到一个文件夹,转到解压缩的文件夹,通过单击 PATH 选项卡复制该文件夹的路径,并明确写入 .exe 文件名(必须写入.exe)。

    注意:文件夹之间的分隔符应该是\(反斜杠)

    例如请看下面:

    System.setProperty("webdriver.chrome.driver", "C:\\Users\\Softwares\\Selenium\\chromedriver_win32\\chromedriver.exe");

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-11
      • 1970-01-01
      • 2010-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-23
      相关资源
      最近更新 更多