Selenium启动浏览器触发java.lang.AbstractMethodError错误求助
问题分析与解决方向
错误本质
java.lang.AbstractMethodError: org.openqa.selenium.remote.service.DriverService$Builder.loadSystemProperties()V 是抽象方法未找到对应实现的报错,核心原因是Selenium依赖版本不兼容——要么是你3月更新的Selenium核心库与浏览器驱动版本不匹配,要么是项目中残留了旧版本Selenium依赖,导致代码调用的方法在实际加载的类中不存在。
具体解决步骤
对齐Selenium与浏览器驱动版本
Selenium 4.x对浏览器驱动的版本匹配要求严格:- ChromeDriver必须与Chrome浏览器大版本完全一致(比如Chrome 118对应ChromeDriver 118.x)
- GeckoDriver需要匹配Firefox版本及Selenium主版本(比如Selenium 4.10+对应GeckoDriver 0.33+)
推荐用自动驱动管理工具(如io.github.bonigarcia:webdrivermanager),它会自动下载适配当前浏览器和Selenium版本的驱动,省去手动设置路径的麻烦。
清理依赖冲突
排查项目是否存在多版本Selenium相关包:- Maven用户执行
mvn dependency:tree,Gradle用户执行./gradlew dependencies - 找到所有旧版本的Selenium依赖(如
selenium-remote-driver、selenium-api),在依赖配置中排除,确保所有Selenium相关依赖统一为你更新后的版本。
手动导入Jar包的话,直接删除所有旧的Selenium Jar,只保留最新的一套。
- Maven用户执行
调整代码调用逻辑
Selenium 4.x重构了DriverService.Builder的API,loadSystemProperties()方法的签名或实现逻辑可能发生了变化。建议改用官方推荐的初始化方式:// Chrome示例 ChromeOptions options = new ChromeOptions(); WebDriver driver = new ChromeDriver(options);若必须手动构建
DriverService,参考当前Selenium版本的官方文档调整Builder的调用流程,确保方法签名完全匹配。验证驱动配置细节
虽然你已验证路径,仍需确认:- 系统属性键是否正确:Chrome用
webdriver.chrome.driver,Firefox用webdriver.gecko.driver,不要写错 - Mac系统下需给驱动文件添加执行权限:执行
chmod +x /path/to/chromedriver
- 系统属性键是否正确:Chrome用
内容的提问来源于stack exchange,提问作者John Shepard
相关产品推荐
相关产品推荐

