You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VS Code无法运行Selenium测试报IllegalStateException异常

问题场景

在VS Code环境运行Java Selenium自动化测试用例,已完成Selenium jar包导入、匹配版本ChromeDriver下载的前置准备,运行测试代码时触发异常。
测试代码如下:

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

public class App {
    public static void main(String[] args) throws Exception {
        System.out.println("hi"); 
        WebDriver driver = new ChromeDriver();
        driver.get("https://www.google.com");
        driver.quit(); 
    }
}
报错详情

运行后抛出IllegalStateException,提示需通过webdriver.chrome.driver系统属性指定ChromeDriver可执行文件路径,完整报错日志:

PS D:\software testing task 2>  & 'C:\Program Files\Java\jdk-17.0.1\bin\java.exe' '-XX:+ShowCodeDetailsInExceptionMessages' '@C:\Users\mohamed\AppData\Local\Temp\cp_apvu20bu2lqgd550a094p3mwf.argfile' 'App' 
zzzzzzzzzz
Exception in thread "main" java.lang.IllegalStateException: The path to the driver executable 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 https://chromedriver.storage.googleapis.com/index.html
        at org.openqa.selenium.internal.Require$StateChecker.nonNull(Require.java:311)
        at org.openqa.selenium.remote.service.DriverService.findExecutable(DriverService.java:135)
        at org.openqa.selenium.chrome.ChromeDriverService.access$000(ChromeDriverService.java:38)
        at org.openqa.selenium.chrome.ChromeDriverService$Builder.findDefaultExecutable(ChromeDriverService.java:231)
        at org.openqa.selenium.remote.service.DriverService$Builder.build(DriverService.java:437)
        at org.openqa.selenium.chrome.ChromeDriverService.createDefaultService(ChromeDriverService.java:127)
        at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:48)
        at App.main(App.java:7)
报错根因

仅把ChromeDriver下载到本地不够,Selenium运行时不会全盘扫描检索驱动文件,需要显式告知程序驱动的存放位置,或者把驱动放到系统默认会检索的路径下,否则程序找不到驱动就会抛出该异常。

解决方法
  • 代码内显式指定驱动路径(最快生效,无需修改系统配置)
    在初始化ChromeDriver实例前,添加一行系统属性配置,将值替换为本地chromedriver.exe的实际完整存放路径即可。修改后的代码示例:
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.chrome.ChromeDriver;
    
    public class App {
        public static void main(String[] args) throws Exception {
            System.out.println("hi");
            // 替换为自己的chromedriver.exe实际存放路径
            System.setProperty("webdriver.chrome.driver", "D:\\test\\drivers\\chromedriver.exe");
            WebDriver driver = new ChromeDriver();
            driver.get("https://www.google.com");
            driver.quit(); 
        }
    }
    
    *注意:Windows系统下写路径时,路径中的反斜杠\需要双写做转义,否则Java会识别为转义字符导致路径错误。
  • 将驱动放到系统默认检索路径
    可以直接把下载好的chromedriver.exe放到当前使用的JDK的bin目录下(从运行日志看当前JDK路径为C:\Program Files\Java\jdk-17.0.1\bin\),也可以把ChromeDriver所在的文件夹路径添加到系统环境变量Path中,配置完成后重启VS Code,无需添加setProperty代码即可正常运行。
  • 升级Selenium版本到4.6及以上
    4.6及以上版本的Selenium内置了Selenium Manager组件,会自动检测本地Chrome浏览器版本、自动下载匹配的ChromeDriver、自动完成路径配置,不需要手动下载驱动也不需要手动编写路径配置,直接初始化ChromeDriver即可正常运行。

内容的提问来源于stack exchange,提问作者bondo2

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 01:03:36