Selenium ChromeDriver Java启动报错:DevToolsActivePort文件不存在
解决Selenium Chrome启动后无法加载URL(DevToolsActivePort文件不存在)问题
核心问题分析
从报错日志和环境信息来看,核心问题有三点:
- Chrome浏览器版本(104.0.5112.102)与ChromeDriver版本(103.0.5060.134)不匹配
- 原代码中Windows路径未做转义处理,导致驱动无法正确识别路径
- Chrome启动时缺少必要参数,引发DevToolsActivePort文件缺失问题
具体解决步骤
1. 匹配Chrome与ChromeDriver版本
ChromeDriver版本必须和Chrome浏览器主版本号严格一致:
- 卸载当前103版本的ChromeDriver
- 下载对应Chrome 104版本的ChromeDriver
- 若使用WebDriverManager,可手动指定版本确保匹配:
WebDriverManager.chromedriver().driverVersion("104.0.5112.79").setup();
2. 修正路径转义问题
Windows系统中,文件路径的反斜杠需要转义,可采用两种方式:
// 方式1:双反斜杠转义 System.setProperty("webdriver.chrome.driver","C:\\Users\\user\\Desktop\\ecli\\chromedriver.exe"); // 方式2:使用正斜杠替代反斜杠 System.setProperty("webdriver.chrome.driver","C:/Users/user/Desktop/ecli/chromedriver.exe");
3. 添加Chrome启动参数解决DevToolsActivePort问题
创建ChromeOptions对象,添加必要启动参数,避免端口异常:
ChromeOptions options = new ChromeOptions(); options.addArguments("--no-sandbox"); options.addArguments("--disable-dev-shm-usage"); options.addArguments("--remote-debugging-port=9222"); options.addArguments("--start-maximized"); // 可选:最大化窗口启动 // 初始化驱动时传入配置 WebDriver driver = new ChromeDriver(options); driver.get("https://rahulshettyacademy.com/"); System.out.println(driver.getTitle());
4. 关于SLF4J警告
日志中的SLF4J警告是项目缺少SLF4J实现依赖导致,不影响Selenium核心功能;若要消除警告,可在项目依赖中添加SLF4J绑定(如logback-classic或slf4j-simple)。
内容的提问来源于stack exchange,提问作者user19810982
相关产品推荐
相关产品推荐

