selenium 线程“main”中出现异常java.lang.IllegalStateException:驱动程序可执行文件的路径必须由以下设置:系统属性

j13ufse2  于 2022-11-24  发布在  Java
关注(0)|答案(4)|浏览(163)
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:199)  
at org.openqa.selenium.remote.service.DriverService.findExecutable(DriverService.java:109)  
at org.openqa.selenium.chrome.ChromeDriverService.access$0(ChromeDriverService.java:1)  
at org.openqa.selenium.chrome.ChromeDriverService$Builder.findDefaultExecutable(ChromeDriverService.java:137)   at org.openqa.selenium.remote.service.DriverService$Builder.build(DriverService.java:296)   
at org.openqa.selenium.chrome.ChromeDriverService.createDefaultService(ChromeDriverService.java:88)     at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:116)    
at practise_locators.DatePicker.main(DatePicker.java:11)

下面是我的代码:

package practise_locators;

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

public class DatePicker {

    public static void main(String[] args){
        WebDriver driver = new ChromeDriver();
        System.setProperty("WebDriver.Chrome.driver", "E:\\chromedriver.exe");
        driver.get("https://www.google.com");
    }

}
niknxzdl

niknxzdl1#

这个错误说明了一切:

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

错误中的以下短语表示包含webdriver.chrome.driver的行中存在错误
错误可能是下列其中一项:

    • 系统类方法 * setProperty()(包括序列)中出错:
System.setProperty()

此行应该是脚本中的第一行

  • 指定的Key出错:
"WebDriver.Chrome.driver"
  • Value 字段出错:
"E:\\chromedriver.exe"

您必须通过以下选项之一传递 WebDriver 的绝对路径:

  • 转义反斜杠(\\),例如"C:\\path\\to\\chromedriver.exe"
  • 单斜扛(/),例如"C:/path/to/chromedriver.exe"

您的代码似乎存在以下两个问题:

  • 第一个问题是指定 Key,而不是"WebDriver.Chrome.driver",应该是**"webdriver.chrome.driver"**,如下所示:
System.setProperty("webdriver.chrome.driver", "E:\\chromedriver.exe");
  • 第二个问题是在程序中提及 Key**"webDriver.chrome.driver"*的 * 顺序 ,它应该在WebDriver driver = new ChromeDriver();**之前,如下所示:
System.setProperty("WebDriver.Chrome.driver", "E:\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("https://www.google.com");
ykejflvf

ykejflvf2#

我看到很多人用错了顺序。顺序应该是。
1.首先设置属性,然后启动浏览器
“网页驱动程序.chrome.驱动程序”,“F:/chrome/chromedriver.exe”); WebDriver驱动程序=新的ChromeDriver();

driver.navigate().to("https://www.google.com");
dsf9zpds

dsf9zpds3#

https://chromedriver.chromium.org/downloads下载与系统中的chrome版本对应的chromedriver版本。解压缩该文件并在IDE中运行以下代码。
导入 selenium 元素驱动程序;导入 selenium 元素驱动程序;
公共课自我介绍{

public static void main(String[] args) {

    //Invoking browser
System.setProperty("webdriver.chrome.driver","C:\\Users\\HP\\Downloads\\chromedriver_win32\\chromedriver.exe");
WebDriver driver = new ChromeDriver();

}

}
(Path取决于您的文件在PC中的位置。)

ffscu2ro

ffscu2ro4#

遇到了同样的错误时,我的代码
“网页驱动程序.chrome.驱动程序”,“C:\用户\abs\chromedriver_win32.exe”);
它是在“.exe”前添加“chromedriver”后工作的,即- System.setProperty(“网页驱动程序.chrome.driver”,“C:\用户\abs\chromedriver_win32\chromedriver. exe”);

相关问题