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

Selenium Chrome启动失败:DevToolsActivePort文件不存在求助

Chrome启动失败:DevToolsActivePort文件不存在问题排查与解决

在Windows 10系统中使用Java语言的Selenium框架运行Chrome浏览器时,抛出异常:

org.openqa.selenium.WebDriverException: unknown error: Chrome failed to start: crashed. (unknown error: DevToolsActivePort file doesn't exist)

已尝试的解决措施

  • 取消以管理员身份运行程序

环境配置

  • Java JDK版本:1.8
  • Chrome浏览器版本:108.0.5359.125
  • selenium-java版本:3.141.59
  • 使用WebDriverManager管理驱动

核心代码

public void setUp() throws InterruptedException, IOException, AWTException {
        String browser = properties.getProperty("Browser");
        if (browser.equalsIgnoreCase("chrome")) {
            System.out.println("inside chrome browser configuration");
            Runtime.getRuntime().exec("cmd /c start Taskkill /IM chrome.exe /T /F");
            Runtime.getRuntime().exec("cmd /c start Taskkill /IM chromedriver.exe /T /F");
            Thread.sleep(5000);
            ChromeOptions options = new ChromeOptions();
            options.setBinary("C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe");
            options.setExperimentalOption("useAutomationExtension", false);
            options.addArguments("start-maximized"); // open Browser in maximized mode

            System.setProperty("wdm.proxy", wdmProxy);
            System.setProperty("wdm.proxyUser", wdmProxyUser);
            System.setProperty("wdm.proxyPass", wdmProxyPwd);
            WebDriverManager.chromedriver().setup();
            driver = new ChromeDriver(options);

            driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
            String test = properties.getProperty("URL");
            driver.get(test);

排查与解决方法

1. 调整ChromeOptions关键参数

添加以下参数解决端口占用、权限及共享内存问题:

ChromeOptions options = new ChromeOptions();
options.setBinary("C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe");
options.setExperimentalOption("useAutomationExtension", false);
options.addArguments("start-maximized");
// 新增参数
options.addArguments("--disable-dev-shm-usage"); // 避免共享内存不足导致崩溃
options.addArguments("--no-sandbox"); // 关闭沙箱模式,规避权限限制
options.addArguments("--remote-debugging-port=9222"); // 手动指定调试端口,确保DevTools端口可用

2. 优化进程清理逻辑

移除cmd /c start,直接执行taskkill确保进程彻底终止,缩短不必要的等待时间:

// 清理Chrome相关进程
try {
    Runtime.getRuntime().exec("taskkill /F /IM chrome.exe /T");
    Runtime.getRuntime().exec("taskkill /F /IM chromedriver.exe /T");
    Thread.sleep(3000);
} catch (IOException e) {
    // 忽略进程不存在的异常
    e.printStackTrace();
}

3. 强制匹配ChromeDriver版本

手动指定与Chrome 108完全匹配的驱动版本,避免WebDriverManager自动匹配偏差:

WebDriverManager.chromedriver().driverVersion("108.0.5359.71").setup();

4. 检查权限与安装路径

  • 确认C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe路径存在,且当前用户拥有该目录的读写权限
  • 若路径权限不足,给当前用户添加该目录的「完全控制」权限

5. 禁用Chrome自动更新

Chrome自动更新会导致版本不匹配,可通过以下方式禁用:

  • 组策略:打开gpedit.msc,定位到计算机配置>管理模板>Google>Google Chrome>更新,启用「禁用自动更新」
  • 注册表:在HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome下新建DWORD值AutoUpdateCheckPeriodMinutes,设置为0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 16:05:25