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

WebDriver 115更新后出现ChromeOptions方法缺失错误求助

解决Selenide + ChromeDriver 115+ 出现的NoSuchMethodError问题

这个错误核心原因是Selenide版本与Selenium WebDriver版本不兼容,mergeInOptionsFromCaps是Selenium内部方法,Selenide的特定版本依赖该方法实现配置合并,版本不匹配就会触发找不到方法的异常。以下是具体解决步骤:

1. 对齐Selenide与Selenium版本

Selenide官方严格绑定对应Selenium版本,比如:

  • Selenide 6.19.x → Selenium 4.11.x
  • Selenide 6.20.x → Selenium 4.12.x
  • 后续版本可通过Maven仓库查看版本对应关系

直接在POM中指定兼容的Selenide版本,让它自动管理Selenium依赖,避免手动引入Selenium包导致冲突。

2. 清理依赖冲突

执行mvn dependency:tree命令,检查所有org.seleniumhq.selenium开头的依赖,确保没有旧版本(如4.10及以下)被间接引入。如果发现冲突,在对应依赖中添加排除配置:

<exclusions>
    <exclusion>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-api</artifactId>
    </exclusion>
    <exclusion>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-chrome-driver</artifactId>
    </exclusion>
    <exclusion>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-remote-driver</artifactId>
    </exclusion>
</exclusions>

3. 修正ChromeOptions配置方式

避免手动创建ChromeDriver实例后调用Selenide方法,这会导致Selenide内部配置与手动驱动冲突。正确配置方式:

// 方式1:用Selenide内置配置
Configuration.headless = true;
Configuration.browser = "chrome";
Selenide.open("https://your-test-url.com");

// 方式2:自定义ChromeOptions并交给Selenide管理
ChromeOptions options = new ChromeOptions();
options.addArguments("--disable-extensions");
options.addArguments("--start-maximized");
Configuration.browserCapabilities = options;
Selenide.open("https://your-test-url.com");

4. 清理Maven缓存

执行mvn clean install -U,强制更新依赖并清理本地缓存,避免旧版本依赖残留。

检查要点

  • POM中不要手动引入selenium-chrome-driver、selenium-api等包,全部由Selenide依赖管理
  • 测试代码不要混合使用原生WebDriver和Selenide的驱动初始化逻辑
  • 确保ChromeDriver版本与Chrome浏览器版本完全一致(115+对应ChromeDriver 115+)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 05:43:27