【问题标题】:java.lang.IllegalStateException: The path to the driver executable must be set by the webdriver.chrome.driver system propertyjava.lang.IllegalStateException:驱动程序可执行文件的路径必须由 webdriver.chrome.driver 系统属性设置
【发布时间】:2018-03-17 05:01:52
【问题描述】:

这是我的代码:

package Basics;

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

public class invokegoogle {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

    System.setProperty("Webdriver.chrome.driver", "C:\\Users\\sravani\\Desktop.exe");
    WebDriver driver=new ChromeDriver();
    driver.get("http://qaclickacademy.com");

    }

}

得到以下错误:

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:754)
    at org.openqa.selenium.remote.service.DriverService.findExecutable(DriverService.java:124)
    at org.openqa.selenium.chrome.ChromeDriverService.access$000(ChromeDriverService.java:32)
    at org.openqa.selenium.chrome.ChromeDriverService$Builder.findDefaultExecutable(ChromeDriverService.java:137)
    at org.openqa.selenium.remote.service.DriverService$Builder.build(DriverService.java:329)
    at org.openqa.selenium.chrome.ChromeDriverService.createDefaultService(ChromeDriverService.java:88)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:124)
    at Basics.invokegoogle.main(invokegoogle.java:12)

非常感谢任何帮助。提前致谢

【问题讨论】:

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


【解决方案1】:

假设chromedriver.exe 存储在您的桌面上,您需要进行如下更改:

  • 您需要将Webdriver.chrome.driver内的大写W替换为小写w
  • 当您在 系统上时,假设chromedriver.exe 放置在您的桌面中,您需要在绝对路径 中附加WebDriver 变体名称以及扩展名> WebDriver
  • 实际上这行代码是:

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

注意webdriver.chrome.driver需要以小写字母开头。

【讨论】:

    【解决方案2】:

    将chrome驱动程序下载到系统后,将其解压缩(解压缩)到文件夹后,您似乎直接复制了文件夹路径“Downloads/chromedriver_win32.exe”,而不是使用下面提到的完整路径

    打开文件夹(chromedriver_win32.exe),然后你会看到“chromedriver.exe”为.exe文件,用这个路径代替,它看起来像这样

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

    这会起作用

    【讨论】:

      【解决方案3】:

      将您的 chrome 驱动程序添加到 java 资源文件夹

      添加下面提到的代码将起作用

      System.setProperty("webdriver.chrome.driver", Objects.requireNonNull(getClass().getClassLoader().getResource("drivers/chromedriver.exe")).getFile() );
      

      【讨论】:

        【解决方案4】:

        我也遇到了同样的问题,然后搜索了很多答案并应用到我的代码中,但结果显示为 null 然后在我意识到我已经在类的上面声明了静态变量之后 看起来像

        private static WebDriver driver = new ChromeDriver(); 
        

        然后我在 void 主类下重写代码

        WebDriver driver = new ChromeDriver(); 
        

        现在我的代码运行正常 您也可以这样尝试或让我知道,以便我可以帮助您。

        【讨论】:

          猜你喜欢
          • 2016-11-04
          • 2020-11-27
          • 1970-01-01
          • 1970-01-01
          • 2013-08-18
          • 2017-12-21
          • 2017-04-26
          • 2017-02-04
          • 2017-11-12
          相关资源
          最近更新 更多