运行TestProject SDK报ChromeDriver实例创建失败该如何排查解决?
问题解决方法
本次报错的核心原因是项目依赖缺失或版本冲突,找不到Apache HttpCore组件中的org.apache.http.config.Lookup类,与JDK版本无直接关联,可按照以下步骤修复:
统一项目Java编译版本
你当前POM文件的编译版本配置存在冲突:maven-compiler-plugin中配置的源码/目标编译版本为16,全局properties中配置的编译版本为17,与你实际使用的JDK 11不匹配。需要将两处配置统一修改为11:- 修改properties节点内容:
<properties> <maven.compiler.source>11</maven.compiler.source> <maven.compiler.target>11</maven.compiler.target> </properties>- 修改maven-compiler-plugin的configuration节点内容:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>11</source> <target>11</target> </configuration> </plugin>另外可直接删除dependencies节点中
maven-compiler-plugin对应的依赖项,Maven插件仅需在build/plugins节点配置即可,不需要作为项目依赖引入。显式引入兼容版本的HttpCore依赖
在POM的dependencies节点中加入以下依赖,补充缺失的类:<dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpcore</artifactId> <version>4.4.14</version> </dependency>排除Cassandra依赖引入的旧版本Http组件
cassandra-all依赖会自带旧版本的Http相关组件,容易和TestProject SDK、Selenium依赖的版本产生冲突,需要在cassandra-all的exclusions节点中新增以下排除规则:<exclusion> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpcore</artifactId> </exclusion> <exclusion> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> </exclusion>重新构建项目
执行mvn clean install命令清除旧的构建缓存,重新拉取依赖后运行代码即可。
如果修改后仍存在依赖冲突,可以执行mvn dependency:tree命令查看所有HttpCore相关依赖的版本,排查是否还有其他依赖引入了冲突版本。
内容的提问来源于stack exchange,提问作者Ramitha Silva
相关产品推荐
相关产品推荐

