使用WebDriverManager 5.0.3时出现Selenium内部类NotFound异常如何解决
问题原因
- WebDriverManager 5.0.3版本仅适配Selenium 3.x系列API,而你使用的Selenium 4.1.0属于Selenium 4大版本,Selenium 4官方已经移除了
org.openqa.selenium.internal包下的Require、FindsById等类,WebDriverManager调用这些已删除的旧API时就会抛出类不存在的异常。 - 额外引入的
selenium-api属于冗余依赖,selenium-java本身已经包含了对应版本的selenium-api,重复声明反而可能引发依赖版本冲突。
解决方案
你可以根据业务场景二选一:
方案1(推荐):升级WebDriverManager版本
WebDriverManager从5.1.0版本开始正式支持Selenium 4,将WebDriverManager升级到5.1.0及以上的稳定版即可解决兼容性问题,同时删除冗余的selenium-api依赖。
修改后的pom依赖示例:
<dependency> <groupId>io.github.bonigarcia</groupId> <artifactId>webdrivermanager</artifactId> <version>5.6.2</version> <!-- 可替换为最新稳定版 --> </dependency> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>4.1.0</version> </dependency>
方案2:降级Selenium版本
如果必须保留WebDriverManager 5.0.3版本,将Selenium版本降级到3.x系列的最终稳定版即可适配:
<dependency> <groupId>io.github.bonigarcia</groupId> <artifactId>webdrivermanager</artifactId> <version>5.0.3</version> </dependency> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>3.141.59</version> </dependency>
验证操作
修改依赖后如果仍有报错,可执行mvn dependency:tree命令检查项目中是否存在多版本Selenium依赖冲突,清理本地Maven缓存后重新构建即可。
内容的提问来源于stack exchange,提问作者Chris
相关产品推荐
相关产品推荐

