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

Posted

技术标签:

【中文标题】获取“驱动程序可执行文件的路径必须由 webdriver.chrome.driver 系统属性设置”虽然设置正确的路径【英文标题】:Getting "The path to the driver executable must be set by the webdriver.chrome.driver system property"though set correct path 【发布时间】:2017-11-12 14:01:48 【问题描述】:

我的代码很简单 代码:

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: 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:738)

虽然配置正确,但出现版本错误。请帮我解决这个问题。

详情:

操作系统:Windows XP。 Java:JDK1.8 和 JRE1.8。 硒:3.4 版

【问题讨论】:

【参考方案1】:

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

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】:

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

【讨论】:

【参考方案3】:

如果您使用的是 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;

因此,一旦我在“运行 > 编辑配置 > VM 选项”中本地添加了我的 chromedriver 的路径:

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

我现在可以成功启动我的 Chrome 浏览器了。

【讨论】:

【参考方案4】:

我完全同意 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 文件。

【讨论】:

【参考方案5】:

以下几行可以正常工作

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();

【讨论】:

【参考方案6】:

试试:

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 类下导入所有 Selenium jar

【讨论】:

【参考方案7】:

我遇到了同样的错误,因为我的机器上没有安装 chrome 驱动程序。 安装铬驱动程序。跟随: https://github.com/SeleniumHQ/selenium/wiki/ChromeDriver

【讨论】:

【参考方案8】:

您应该按照 Selenium wiki 的要求使用 Chocolatey。它会立即工作。

Windows users with Chocolatey installed: choco install chromedriver

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

【讨论】:

【参考方案9】:

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

首先,可以从下面的链接中找到所需的 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);

【讨论】:

【参考方案10】:

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

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

【讨论】:

以上是关于获取“驱动程序可执行文件的路径必须由 webdriver.chrome.driver 系统属性设置”虽然设置正确的路径的主要内容,如果未能解决你的问题,请参考以下文章

java反射获取属性值

Shell 获取路径

iOS 获取文件大小

根据日期字符串获取星期几,日期获取星期,时间获取星期,js获取星期

js如何获取时间点?

iOS 获取设备的各种信息的方法