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

使用WebDriverManager启动Chrome时陷入无限循环的解决求助

解决WebDriverManager 5.8.0 + Selenium 4.19.1 无限循环启动Chrome的问题

一、核心问题排查

无限循环的根源通常是两个:

  • Selenium 4.10+ 内置了Selenium Manager驱动管理工具,如果同时启用WebDriverManager和Selenium Manager,两者会互相抢着处理驱动匹配,导致循环。
  • 手动指定完整Chrome版本号时,可能因CDN源的版本匹配规则问题,触发重复下载尝试。

二、本地环境修复方案

方案1:禁用Selenium内置管理,让WebDriverManager全权处理

在初始化驱动前添加系统属性禁用Selenium Manager,避免冲突:

// 先禁用Selenium自带的驱动管理
System.setProperty("selenium-manager.disabled", "true");
// 清理旧缓存后初始化WebDriverManager
WebDriverManager.chromedriver().clearDriverCache().setup();
// 启动Chrome会话
ChromeDriver driver = new ChromeDriver();

方案2:直接用Selenium内置的Selenium Manager(无需WebDriverManager)

Selenium 4.19.1自带的驱动管理已经足够稳定,可以直接移除WebDriverManager依赖,代码简化为:

ChromeOptions options = new ChromeOptions();
// 按需添加浏览器参数,比如无头模式
options.addArguments("--headless=new");
// 直接初始化,Selenium会自动匹配对应版本的Chrome Driver
WebDriver driver = new ChromeDriver(options);

这种方式不需要额外依赖,还能自动适配Chrome的自动更新。

三、Jenkins环境额外配置

  • 确保Jenkins节点上安装了Chrome,可通过options.setBinary("/path/to/chrome")指定Chrome路径(如果环境变量没配置的话)。
  • 若用Selenium Manager,需保证Jenkins节点有网络权限访问驱动下载源;国内环境可配置镜像:
    System.setProperty("webdriver.chrome.driver.mirror", "https://npm.taobao.org/mirrors/chromedriver/");
    
  • 若坚持用WebDriverManager,构建时添加clean命令清理旧缓存,避免冲突:
    mvn clean test
    

四、版本匹配技巧

  • 不要手动指定完整版本号,让WebDriverManager自动检测本地Chrome版本:
    WebDriverManager.chromedriver().clearDriverCache().setup();
    
  • 若必须指定版本,只给主版本号(比如124.0),WebDriverManager会自动匹配对应最新子版本的驱动:
    WebDriverManager.chromedriver().browserVersion("124.0").setup();
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 18:02:15