【问题标题】:Getting "The path to the driver executable must be set by the webdriver.chrome.driver system property"though set correct path获取“驱动程序可执行文件的路径必须由 webdriver.chrome.driver 系统属性设置”虽然设置正确的路径
【发布时间】: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 版

【问题讨论】:

    标签: selenium selenium-webdriver selenium-chromedriver


    【解决方案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

                      【讨论】:

                        猜你喜欢
                        • 1970-01-01
                        • 1970-01-01
                        • 2018-03-17
                        • 2016-11-04
                        • 2013-08-18
                        • 2020-10-07
                        • 2020-11-27
                        • 2017-04-26
                        相关资源
                        最近更新 更多