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

Java/Selenium中ChromeDriver路径配置异常无法执行问题排查

问题分析与解决方案

你遇到的情况很特殊:用Firefox驱动的配置项webdriver.gecko.driver指定ChromeDriver反而能运行Chrome测试,换成Chrome官方要求的webdriver.chrome.driver配置项却触发NoSuchDriverException。这本质是因为前者绕过了Selenium对ChromeDriver的合规校验,后者触发了校验才暴露了驱动文件的真实问题。以下是针对性的排查和解决步骤:

  • 检查驱动文件的执行权限

    • Windows系统:右键点击chromedriver.exe,进入「属性」-「常规」,确认底部没有「解除阻止」按钮(如果有,点击解除)。
    • Linux/macOS系统:打开终端,进入项目的drivers目录,执行chmod +x chromedriver,给驱动赋予可执行权限。
  • 替换为绝对路径
    相对路径可能受Eclipse的工作目录影响,换成绝对路径彻底排除路径问题:

    // Windows示例
    System.setProperty("webdriver.chrome.driver", "D:/workspace/your-project/drivers/chromedriver.exe");
    // Linux/macOS示例
    System.setProperty("webdriver.chrome.driver", "/home/user/workspace/your-project/drivers/chromedriver");
    
  • 验证驱动文件完整性
    重新下载Chrome 117对应版本的ChromeDriver,对比官方提供的文件哈希值,确认下载的文件没有损坏。部分情况下,中断的下载会生成无法执行的残缺文件。

  • 检查Selenium版本兼容性
    Chrome 117需要搭配Selenium 4.11.0及以上版本,如果你使用的Selenium版本低于这个范围,升级到最新稳定版即可解决兼容性问题。


你的测试代码参考

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

public class ChromeTestDemo {
    public static void main(String[] args) {
        // 正确配置项(原报错写法)
        System.setProperty("webdriver.chrome.driver", "drivers/chromedriver");
        WebDriver driver = new ChromeDriver();
        try {
            driver.get("https://www.google.com");
        } finally {
            driver.quit();
        }
    }
}

错误堆栈示例

org.openqa.selenium.NoSuchDriverException: Unable to execute chromedriver located at drivers/chromedriver
Build info: version: '4.9.0', revision: 'd7057100a6'
System info: os.name: 'Mac OS X', os.arch: 'aarch64', os.version: '13.5', java.version: '17.0.8'
Driver info: driver.version: ChromeDriver

内容的提问来源于stack exchange,提问作者T A.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 15:42:24