0

0

如何正确配置 ChromeDriver 以解决 Selenium 启动失败问题

碧海醫心

碧海醫心

发布时间:2026-03-06 11:45:02

|

136人浏览过

|

来源于php中文网

原创

如何正确配置 ChromeDriver 以解决 Selenium 启动失败问题

本文详解 Selenium 中 IllegalStateException: The path to the driver executable must be set 错误的成因与解决方案,涵盖 ChromeDriver 下载、路径配置、版本兼容性及现代替代方案(如 WebDriverManager)。

本文详解 selenium 中 `illegalstateexception: the path to the driver executable must be set` 错误的成因与解决方案,涵盖 chromedriver 下载、路径配置、版本兼容性及现代替代方案(如 webdrivermanager)。

在使用 Selenium + Java 启动 Chrome 浏览器时,若遇到如下典型异常:

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

这表明 Selenium 无法定位 ChromeDriver 可执行文件——并非代码逻辑错误,而是环境配置缺失。根本原因在于:自 Selenium 4.0 起(尤其是 4.6+),ChromeDriver 不再默认内置,必须显式指定其本地路径或启用自动管理机制。

✅ 正确配置方式(推荐两种方案)

方案一:手动指定 ChromeDriver 路径(适用于调试/离线环境)

在调用 new ChromeDriver() 之前,通过 System.setProperty() 设置系统属性:

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

public class Open_browser {
    public static void main(String[] args) {
        // ✅ 关键步骤:必须在实例化 ChromeDriver 前设置
        System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver");

        WebDriver driver = new ChromeDriver(); // 现在可安全初始化
        driver.get("https://www.example.com");
        driver.quit();
    }
}

⚠️ 注意事项:

Img.Upscaler
Img.Upscaler

免费的AI图片放大工具

下载
  • 路径需为 绝对路径(如 Windows:C:\selenium\chromedriver.exe;macOS/Linux:/usr/local/bin/chromedriver);
  • 文件必须具有可执行权限(Linux/macOS 执行 chmod +x chromedriver);
  • .exe 后缀在 Windows 上不可省略,其他系统则无后缀。

方案二:使用 WebDriverManager(推荐生产/跨平台项目)

避免手动下载与路径维护,引入 WebDriverManager 自动处理驱动下载与缓存:

  1. 添加 Maven 依赖(以最新稳定版为例):

    <dependency>
     <groupId>io.github.bonigarcia</groupId>
     <artifactId>webdrivermanager</artifactId>
     <version>5.9.2</version>
    </dependency>
  2. 代码中自动配置(无需硬编码路径):

    import io.github.bonigarcia.wdm.WebDriverManager;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.chrome.ChromeDriver;

public class Open_browser { public static void main(String[] args) { // ✅ 自动检测 Chrome 版本并下载匹配的 ChromeDriver WebDriverManager.chromedriver().setup();

    WebDriver driver = new ChromeDriver();
    driver.get("https://www.example.com");
    driver.quit();
}

}


> ? WebDriverManager 优势:自动适配 Chrome 版本、支持多平台、缓存复用、兼容 CI/CD 环境。

### ? 版本兼容性关键提醒
- ChromeDriver 必须与本地 Chrome 浏览器**主版本号一致**(如 Chrome 125.x → 需 ChromeDriver 125.x);
- 查看 Chrome 版本:地址栏输入 `chrome://version`;
- 下载对应驱动:[ChromeDriver 官方仓库](https://chromedriver.storage.googleapis.com/);
- Selenium 4.6+ 已弃用 `ChromeDriverService` 的显式构建方式,直接使用 `WebDriverManager.setup()` 或 `ChromeDriver` 构造函数即可。

### ✅ 总结
该错误本质是驱动注册缺失,而非代码缺陷。优先采用 **WebDriverManager** 实现零配置、高兼容的自动化管理;仅在受限环境(如无外网)下使用手动路径方案,并务必确保路径正确、权限充足、版本匹配。正确配置后,`ChromeDriver` 将无缝启动,为后续自动化测试奠定可靠基础。

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
chrome什么意思
chrome什么意思

chrome是浏览器的意思,由Google开发的网络浏览器,它在2008年首次发布,并迅速成为全球最受欢迎的浏览器之一。本专题为大家提供chrome相关的文章、下载、课程内容,供大家免费下载体验。

1028

2023.08.11

chrome无法加载插件怎么办
chrome无法加载插件怎么办

chrome无法加载插件可以通过检查插件是否已正确安装、禁用和启用插件、清除插件缓存、更新浏览器和插件、检查网络连接和尝试在隐身模式下加载插件方法解决。更多关于chrome相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

823

2023.11.06

Java Maven专题
Java Maven专题

本专题聚焦 Java 主流构建工具 Maven 的学习与应用,系统讲解项目结构、依赖管理、插件使用、生命周期与多模块项目配置。通过企业管理系统、Web 应用与微服务项目实战,帮助学员全面掌握 Maven 在 Java 项目构建与团队协作中的核心技能。

0

2025.09.15

string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

950

2023.08.02

javascriptvoid(o)怎么解决
javascriptvoid(o)怎么解决

javascriptvoid(o)的解决办法:1、检查语法错误;2、确保正确的执行环境;3、检查其他代码的冲突;4、使用事件委托;5、使用其他绑定方式;6、检查外部资源等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

186

2023.11.23

java中void的含义
java中void的含义

本专题整合了Java中void的相关内容,阅读专题下面的文章了解更多详细内容。

125

2025.11.27

class在c语言中的意思
class在c语言中的意思

在C语言中,"class" 是一个关键字,用于定义一个类。想了解更多class的相关内容,可以阅读本专题下面的文章。

788

2024.01.03

python中class的含义
python中class的含义

本专题整合了python中class的相关内容,阅读专题下面的文章了解更多详细内容。

26

2025.12.06

JavaScript浏览器渲染机制与前端性能优化实践
JavaScript浏览器渲染机制与前端性能优化实践

本专题围绕 JavaScript 在浏览器中的执行与渲染机制展开,系统讲解 DOM 构建、CSSOM 解析、重排与重绘原理,以及关键渲染路径优化方法。内容涵盖事件循环机制、异步任务调度、资源加载优化、代码拆分与懒加载等性能优化策略。通过真实前端项目案例,帮助开发者理解浏览器底层工作原理,并掌握提升网页加载速度与交互体验的实用技巧。

1

2026.03.06

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号