Chrome 111版本Selenium Driver无头模式无法运行求解决方案
解决Chrome 111版本下Selenium无头模式启动失败问题
针对添加--headless参数后出现DevToolsActivePort file doesn't exist错误的情况,可尝试以下解决方案:
1. 使用新版无头模式参数
Chrome 111及以上版本推荐用**--headless=new**替代旧的--headless参数,新版无头模式与普通Chrome行为更一致,能规避多数兼容性问题:
ChromeOptions options = new ChromeOptions(); options.addArguments("--remote-allow-origins=*"); options.addArguments("--headless=new"); // 替换原--headless参数
2. 补充必要启动参数
添加以下参数解决端口占用、资源限制等问题:
ChromeOptions options = new ChromeOptions(); options.addArguments("--remote-allow-origins=*"); options.addArguments("--headless=new"); // 固定窗口尺寸,避免无头模式下窗口异常 options.addArguments("--window-size=1920,1080"); // 禁用沙箱(部分Linux/容器环境必需) options.addArguments("--no-sandbox"); // 解决/dev/shm资源不足问题 options.addArguments("--disable-dev-shm-usage"); // 指定调试端口,避免端口冲突 options.addArguments("--remote-debugging-port=9222");
3. 确保ChromeDriver与Chrome版本完全匹配
ChromeDriver版本必须和Chrome 111完全对应,小版本号不一致也可能导致启动失败,请下载对应版本的ChromeDriver替换现有文件。
4. 检查运行环境权限
- 若在Linux或容器环境运行,确保执行Selenium的用户有权限访问Chrome安装目录和临时文件目录;
- 排查9222端口是否被其他进程占用,Linux可执行
lsof -i :9222,Windows可执行netstat -ano | findstr :9222。
内容的提问来源于stack exchange,提问作者HamoriZ
相关产品推荐
相关产品推荐

