获取“驱动程序可执行文件的路径必须由webdriver.chrome.driver系统属性设置”,但设置正确的路径

时间:2017-06-10 18:22:31

标签: selenium selenium-webdriver selenium-chromedriver

我的代码非常简单 代码:

WebDriver wd =new ChromeDriver();
  System.setProperty("webdriver.chrome.driver",
                     "D:\\List_of_Jar\\chromedriver.exe");    
       String baseUrl = "https://www.google.com";wd.get(baseUrl);

从selenium hq网站下载并添加了jar作为“Java-3.4.0”。 从同一网站下载Google Chrome Driver-2.29,并将其放在“D:\ List_of_Jar”路径中。

当我运行上面的代码时,我得到一个错误 “java.lang.IllegalStateException:驱动程序可执行文件的路径必须由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)“。

虽然进行了正确配置,但仍出现版本错误。所以请帮助我解决这个问题。 细节: 操作系统:Windows XP。 Java:JDK1.8和JRE1.8。 Selenium:版本3.4

10 个答案:

答案 0 :(得分:19)

应在浏览器启动之前设置驱动程序路径,如下所示。

System.setProperty("webdriver.chrome.driver","D:\List_of_Jar\chromedriver.exe");
WebDriver wd =new ChromeDriver();
String baseUrl = "https://www.google.com";
wd.get(baseUrl);"

答案 1 :(得分:7)

您正在错误地设置Chrome驱动程序路径。必须在WebDriver初始化之前设置属性。

像这样设置属性 -

System.setProperty("webdriver.chrome.driver","D:\\List_of_Jar\\chromedriver.exe")
WebDriver wd =new ChromeDriver();
String baseUrl = "https://www.google.com";
wd.get(baseUrl);" 

答案 2 :(得分:5)

如果您使用的是IntelliJ IDE,那么在IntelliJ上没有设置'运行>编辑配置> VM选项'我只会遇到这个错误:

Failed scenarios:
C:/Users/DATestAdmin/IdeaProjects/TestLogin/src/test/resources/login.feature:4 # Scenario: Successfully logging in

1 Scenarios (1 failed)
3 Steps (3 skipped)
0m0.194s

java.lang.IllegalStateException: The path to the driver executable must be set by the webdriver.chrome.driver system property;

所以,一旦我在' Run>中添加了我的chromedriver的路径。编辑配置> VM选项':

-Dwebdriver.chrome.driver="C:\\Users\\This\\Is\\Where\\ChromeDriverIs\\chromedriver_win32.exe"

Run > Edit Configurations

我现在能够成功启动Chrome浏览器。

答案 3 :(得分:1)

我完全同意Murthi的观点,但更好的方法是设置相对于驾驶员的路径,而不是绝对路径。

相对路径如下:

System.setProperty("webdriver.chrome.driver", "src/test/resources/drivers/chromedriver.exe");

Abosulte:是PC中驱动程序的路径。

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

为什么? 将驱动程序包含在项目中,而不仅仅是在计算机中,是一种好习惯。只需找到或创建文件夹f.e.资源,在资源内部创建名为f.e的文件夹。驱动程序并在那里导入驱动程序/驱动程序exe文件。

答案 4 :(得分:0)

尝试:

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

public class Demo2 {

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

        System.setProperty("webdriver.chrome.driver", "I:\\Bhasker-ShiroCode\\work\\chromedriver.exe");

        WebDriver driver = new ChromeDriver();

        driver.get("http://google.com");
    }

}

为避免错误:

  • webdriver.chrome.driver(应使用小写字母)
  • 必须提供正确的chromedriver.exe(正确的路径)
  • 导入所有Path类下的硒罐

答案 5 :(得分:0)

由于没有在我的计算机上安装chrome驱动程序,因此出现了相同的错误。 安装chrome驱动程序。跟随: https://github.com/SeleniumHQ/selenium/wiki/ChromeDriver

答案 6 :(得分:0)

您应该按照Selenium Wiki的指示使用Chocolatey。它将立即工作。

Windows users with Chocolatey installed: choco install chromedriver

https://github.com/SeleniumHQ/selenium/wiki/ChromeDriver

答案 7 :(得分:0)

我也遇到了同样的问题。修复后,使我的应用程序运行平稳。

首先,可以从下面的链接中找到所需版本的chrome驱动程序。

http://chromedriver.storage.googleapis.com/index.html

最好始终使用最新版本。下载后,在System.setProperty("webdriver.chrome.driver","{Your path Chrome Driver}");

中设置Chrome驱动程序的路径

遵循代码片段。

        System.out.println("Creating Chrome Driver");
     // Set Chrome Driver
        System.setProperty("webdriver.chrome.driver", "D:\\chromedriver.exe");

        WebDriver driver = new ChromeDriver();
        driver.get("{Your URL}");
        System.out.println("Wait a bit for the page to render");
        TimeUnit.SECONDS.sleep(5);
        System.out.println("Taking Screenshot");
        File outputFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
        String imageDetails = "D:\\Images";
        File screenShot = new File(imageDetails).getAbsoluteFile();
        FileUtils.copyFile(outputFile, screenShot);
        System.out.println("Screenshot saved: {}" + imageDetails);

答案 8 :(得分:0)

以下几行正常工作

public class TestNGFile {

    public String baseUrl = "https://google.com";
    String driverPath = "C:\\\\Users\\\\Documents\\\\selenium\\\\chromedriver_win32\\\\chromedriver.exe";
    @Test
    public void verifyHomepageTitle() {

        System.out.println("launching chrome browser"); 
        System.setProperty("webdriver.chrome.driver", "C:\\Users\\Documents\\selenium\\chromedriver_win32\\chromedriver.exe");
        //System.setProperty("webdriver.gecko.driver", driverPath);
        WebDriver driver = new ChromeDriver();
        driver.get(baseUrl);
        String expectedTitle = "Google";
        String actualTitle = driver.getTitle();
        Assert.assertEquals(actualTitle, expectedTitle);
        driver.close();

答案 9 :(得分:0)

我遇到了同样的问题。 “驱动程序可执行文件的路径必须由webdriver.chrome.driver系统属性设置。” 下载了驱动程序并设置了系统属性。

https://www.youtube.com/watch?v=Ny_8ikCbmcQ