Chrome升级至108.x后Selenium脚本报错DevToolsActivePort文件不存在
解决Chrome 108.x升级后Selenium脚本DevToolsActivePort报错问题
核心问题分析
你的Selenium版本(3.141.59)属于旧版本,对Chrome 108+的兼容性不足;同时WebDriverManager 5.2.1对新版本Chrome的驱动管理可能存在适配问题,这是导致报错的主要原因。以下是针对性的解决步骤:
步骤1:升级依赖版本
修改Maven依赖,更新到兼容Chrome 108的版本:
<dependencies> <!-- 升级Selenium到兼容Chrome 108的版本 --> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>4.7.2</version> </dependency> <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>7.6.1</version> <scope>test</scope> </dependency> <!-- 升级WebDriverManager到适配新版本Chrome的版本 --> <dependency> <groupId>io.github.bonigarcia</groupId> <artifactId>webdrivermanager</artifactId> <version>5.3.3</version> </dependency> </dependencies>
步骤2:调整ChromeOptions配置
添加必要的启动参数,避免DevToolsActivePort相关问题:
import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeOptions; import io.github.bonigarcia.wdm.WebDriverManager; public class TestScript { public static void main(String[] args) { WebDriverManager.chromedriver().setup(); ChromeOptions options = new ChromeOptions(); // 绑定调试端口,解决DevToolsActivePort缺失问题 options.addArguments("--remote-debugging-port=9222"); // 禁用沙箱模式(Windows环境下避免权限冲突) options.addArguments("--no-sandbox"); // 规避/dev/shm内存限制问题 options.addArguments("--disable-dev-shm-usage"); // 指定临时用户数据目录,避免与本地Chrome实例冲突 options.addArguments("--user-data-dir=C:\\temp\\chrome-temp-profile"); // 禁用GPU加速,避免部分环境下的渲染异常 options.addArguments("--disable-gpu"); ChromeDriver driver = new ChromeDriver(options); // 后续脚本逻辑 driver.get("https://www.example.com"); // ... driver.quit(); } }
步骤3:清理残留Chrome进程
运行脚本前,打开任务管理器,杀掉所有chrome.exe、chromedriver.exe进程,避免旧进程占用端口或资源导致冲突。
步骤4:验证ChromeDriver版本
确认WebDriverManager下载的ChromeDriver版本与Chrome 108.x完全一致。可以在脚本运行日志中查看驱动下载信息,或手动检查本地缓存目录(默认路径:C:\Users\<你的用户名>\.cache\selenium\chromedriver\win32)。
内容的提问来源于stack exchange,提问作者Shishir Jain
相关产品推荐
相关产品推荐

