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

Chrome+Selenium Java报错DevToolsActivePort file doesn't exist求助

解决ChromeDriver启动时DevToolsActivePort文件不存在的问题

问题环境

  • Chrome浏览器版本:109.0.5414.120
  • ChromeDriver版本:109.0.5414.74
  • Selenium版本:3.13.0
  • Java版本:1.8.0_361
  • 操作系统:Windows 11

核心报错

org.openqa.selenium.WebDriverException: unknown error: DevToolsActivePort file doesn't exist

已尝试无效操作

添加--no-sandbox、--headless、--disable-dev-shm-usage参数,手动指定ChromeDriver路径,问题未解决。

解决方案

1. 匹配Chrome与ChromeDriver的精确版本

当前Chrome与ChromeDriver存在小版本差异,会触发兼容性问题。下载与Chrome完全匹配版本的ChromeDriver替换现有文件。

2. 优化ChromeOptions配置

在ChromeOptions中添加关键参数,解决DevToolsActivePort问题,配置代码如下:

ChromeOptions options = new ChromeOptions();
// 强制指定调试端口,避免端口冲突
options.addArguments("--remote-debugging-port=9222");
// 绕过系统安全模型,解决权限问题
options.addArguments("--no-sandbox");
// 解决资源限制问题
options.addArguments("--disable-dev-shm-usage");
// 使用新版无头模式,稳定性更强(不需要无头可删除)
options.addArguments("--headless=new");
// 无头模式下必须指定窗口大小
options.addArguments("--window-size=1920,1080");
// 禁用GPU加速,避免环境兼容问题
options.addArguments("--disable-gpu");
// 最大化启动浏览器
options.addArguments("--start-maximized");

3. 简化Driver初始化代码

避免混合使用DesiredCapabilities和ChromeOptions,直接用ChromeOptions构造ChromeDriver,减少兼容问题。修改后的启动代码:

public WebDriver startBrowser(ExtentTest logger,String browserName, String userEID) {
    try {
        if(browserName.equalsIgnoreCase("chrome")) {          
            System.setProperty("webdriver.http.factory", "apache");   
            // 用WebDriverManager自动拉取匹配版本的ChromeDriver
            WebDriverManager.chromedriver().browserVersion("109.0.5414.120").setup();
            
            HashMap<String, Object> chromePrefs = new HashMap<String, Object>();
            chromePrefs.put("profile.default_content_settings.popups", 0);
            
            ChromeOptions options = new ChromeOptions();
            options.setExperimentalOption("prefs", chromePrefs);
            // 加入优化参数
            options.addArguments("--remote-debugging-port=9222");
            options.addArguments("--no-sandbox");
            options.addArguments("--disable-dev-shm-usage");
            options.addArguments("--headless=new");
            options.addArguments("--window-size=1920,1080");
            options.addArguments("--disable-gpu");
            options.addArguments("--start-maximized");
            
            // 直接用ChromeOptions初始化Driver
            driver = new ChromeDriver(options);
            
            driver.manage().deleteAllCookies(); 
            // 延长隐式等待时间,2秒过短易导致元素定位失败
            driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);        
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    return driver;
}

4. 清理残留进程与检查权限

  • 运行代码前关闭所有Chrome进程,避免残留进程占用端口或资源
  • 确保运行代码的用户拥有Chrome安装目录、ChromeDriver文件的读写权限

5. 升级Selenium版本(推荐)

Selenium 3.13.0版本较旧,对新版本Chrome支持有限,建议升级到3.x系列最新稳定版(如3.141.59),或直接升级到Selenium 4.x,提升兼容性与稳定性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 17:40:25