即使设置了驱动程序的路径,线程“main”java.lang.IllegalStateException 中的异常

Posted

技术标签:

【中文标题】即使设置了驱动程序的路径,线程“main”java.lang.IllegalStateException 中的异常【英文标题】:Exception in thread "main" java.lang.IllegalStateException even when path of driver is set 【发布时间】:2017-11-04 16:04:49 【问题描述】:

当我使用 java main 方法运行 selenium 浏览器初始化时,我遇到了异常。驱动程序在正确的路径上可用。

驱动程序可执行文件的路径必须由 webdriver.chrome.driver 系统属性;有关详细信息,请参阅 https://github.com/SeleniumHQ/selenium/wiki/ChromeDriver。最新的 版本可以从 http://chromedriver.storage.googleapis.com/index.html 在 com.google.common.base.Preconditions.checkState(Preconditions.java:738) 在 org.openqa.selenium.remote.service.DriverService.findExecutable(DriverService.java:124) 在 org.openqa.selenium.chrome.ChromeDriverService.access$000(ChromeDriverService.java:32) 在 org.openqa.selenium.chrome.ChromeDriverService$Builder.findDefaultExecutable(ChromeDriverService.java:137) 在 org.openqa.selenium.remote.service.DriverService$Builder.build(DriverService.java:330) 在 org.openqa.selenium.chrome.ChromeDriverService.createDefaultService(ChromeDriverService.java:88) 在 org.openqa.selenium.chrome.ChromeDriver.(ChromeDriver.java:124) 在 调用浏览器.myfirsttestcase.initBroiwser(myfirsttestcase.java:23) 在 invokebrowser.myfirsttestcase.main(myfirsttestcase.java:16)

代码片段

System.setProperty("Webdriver.chrome.driver","C:\\Javalibs\\chromedriver.exe");
WebDriver driver = new ChromeDriver();//getting exception here

【问题讨论】:

请格式化您的代码 【参考方案1】:

在代码中,Webdriver.code.driver...,W是大写字母。它必须是小写字母,如错误消息中所示。

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

希望这对您有所帮助。谢谢。

【讨论】:

【参考方案2】:

这是您问题的答案:

当您使用 Selenium 3.4.0、chromedriver 2.29 和 Chrome 58.x 时,您必须通过 System.setProperty 指定 chromedriver 的绝对路径

值得一提的是系统属性是webdriver.chrome.driver

当您通过System.setProperty 提到 chromedriver 的绝对路径时,您必须提供正斜杠“/”或转义反斜杠“\\

您自己的代码块将通过这个简单的方式为您工作:

    System.setProperty("webdriver.chrome.driver","C:\\Javalibs\\chromedriver.exe"); 
    WebDriver driver = new ChromeDriver();

    System.setProperty("webdriver.chrome.driver","C:/Javalibs/chromedriver.exe"); 
    WebDriver driver = new ChromeDriver();

如果这能回答您的问题,请告诉我。

【讨论】:

以上是关于即使设置了驱动程序的路径,线程“main”java.lang.IllegalStateException 中的异常的主要内容,如果未能解决你的问题,请参考以下文章

多线程

测试守护线程 java -verbose查看jdk安装路径

review33

java.io.FileNotFoundException:类路径资源即使文件存在于 src/main/resources

多线程Thread线程创建

JAVA基础——线程