java.lang.IllegalStateException:驱动程序可执行文件的路径必须由webdriver.chrome.driver系统属性设置

时间:2017-10-05 14:17:48

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

这是我的代码:

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)

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

4 个答案:

答案 0 :(得分:2)

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

变化:

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

要:

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

请注意&#34; webdriver.chrome.driver&#34;需要以小写字母开头。

答案 1 :(得分:1)

将chrome驱动程序下载到系统中后,将其解压缩(解压缩)到文件夹后,看起来您已经直接复制了文件夹路径&#34; Downloads / chromedriver_win32.exe&#34;,而是使用完整路径如下所述

打开文件夹(chromedriver_win32.exe),然后你会看到&#34; chromedriver.exe&#34;作为.exe文件,并使用此路径,它看起来像这样

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

这将有效

答案 2 :(得分:0)

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

private static WebDriver driver = new ChromeDriver(); 

然后我像在空主类下重写代码

WebDriver driver = new ChromeDriver(); 

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

答案 3 :(得分:0)

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

Driver location

添加下面提到的代码就可以了

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