Selenium启动Chrome浏览器报java.lang.NoClassDefFoundError: okio/Sink问题咨询
问题根因
你遇到的java.lang.NoClassDefFoundError: okio/Sink错误属于Java依赖缺失/冲突问题:Selenium 3.141.59版本底层使用OkHttp客户端和ChromeDriver进行通信,而OkHttp本身依赖Okio库,你当前的项目中缺少对应版本的Okio包,或者存在多版本Okio冲突,导致JVM无法加载对应的类。
ChromeDriver本身启动正常,不存在版本匹配问题,问题出在Java项目的依赖配置上。
解决方案
- 如果使用Maven管理项目依赖,直接在pom.xml中引入Selenium官方的完整依赖,会自动适配兼容版本的okhttp、okio包:
<dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>3.141.59</version> </dependency>
- 如果是手动导入Jar包的项目,需要额外补全两个兼容版本的依赖包:
okhttp-3.11.0.jar、okio-1.14.0.jar,不要使用其他版本避免产生新的兼容性问题。 - 若添加依赖后仍然报错,可执行
mvn dependency:tree命令排查项目中是否存在多版本okhttp/okio冲突,将不兼容的版本做排除处理即可。
内容的提问来源于stack exchange,提问作者Ajeet Yadawa
相关产品推荐
相关产品推荐

