如何在Selenium中适配最新WebDriver版本并解决Chrome测试启动失败问题
问题解决步骤
1. 升级依赖到兼容的最新稳定版本
你当前的依赖版本存在兼容性问题:Selenium 4.14.0、WebDriverManager 5.5.3、Selenium Jupiter 4.3.7之间的版本匹配度不足,尤其是Chrome浏览器更新后,旧版本依赖无法适配最新的ChromeDriver。
建议更新为以下兼容的稳定版本:
<dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>4.21.0</version> <scope>test</scope> </dependency> <dependency> <groupId>io.github.bonigarcia</groupId> <artifactId>selenium-jupiter</artifactId> <version>4.16.0</version> <scope>test</scope> </dependency>
注:Selenium Jupiter已内置适配的WebDriverManager,无需单独引入该依赖,避免版本冲突
2. 优化browsers.json配置
现有配置格式无误,可添加manage参数明确驱动自动管理逻辑:
{ "browsers": [ [ { "type": "chrome", "version": "latest", "manage": true } ] ] }
"manage": true会强制WebDriverManager自动下载与当前Chrome浏览器完全匹配的ChromeDriver,确保版本适配。
3. 验证测试代码的注解使用
确保测试类正确使用Selenium Jupiter的注解,示例如下:
import io.github.bonigarcia.seljup.SeleniumJupiter; import org.junit.jupiter.api.TestTemplate; import org.junit.jupiter.api.extension.ExtendWith; import org.openqa.selenium.chrome.ChromeDriver; @ExtendWith(SeleniumJupiter.class) public class ChromeTest { @TestTemplate void testWithChrome(ChromeDriver driver) { // 测试逻辑示例 driver.get("https://example.com"); } }
4. 清理旧驱动缓存(可选)
如果更新依赖后仍有问题,可手动触发WebDriverManager清理旧驱动缓存,确保下载最新版本:
import io.github.bonigarcia.wdm.WebDriverManager; public class TestSetup { static { WebDriverManager.chromedriver().clearDriverCache().setup(); } }
内容的提问来源于stack exchange,提问作者user16922382
相关产品推荐
相关产品推荐

