运行Appium脚本时抛出java.lang.NoSuchMethodError异常求助
Appium脚本运行时
java.lang.NoSuchMethodError异常排查方案 异常信息
Exception in thread "main" java.lang.NoSuchMethodError: 'void org.openqa.selenium.remote.http.ClientConfig.<init>(java.net.URI, java.time.Duration, java.time.Duration, org.openqa.selenium.remote.http.Filter, java.net.Proxy, org.openqa.selenium.Credentials)' at io.appium.java_client.AppiumClientConfig.<init>(AppiumClientConfig.java:62) at io.appium.java_client.AppiumClientConfig.defaultConfig(AppiumClientConfig.java:79) at io.appium.java_client.remote.AppiumCommandExecutor.<init>(AppiumCommandExecutor.java:109) at io.appium.java_client.AppiumDriver.<init>(AppiumDriver.java:101) at io.appium.java_client.ios.IOSDriver.<init>(IOSDriver.java:104) at Appiumbase.BaseIOSTest.main(BaseIOSTest.java:61)
问题本质
该异常是Appium Java客户端与Selenium依赖版本不兼容导致的:Appium客户端代码调用了某个版本Selenium中存在,但当前项目依赖的Selenium版本中已移除或未实现的ClientConfig构造方法。
排查解决步骤
统一依赖版本
确保Appium Java客户端和Selenium的版本匹配:- Appium Java Client 8.x系列需搭配Selenium 4.x系列;Appium Java Client 7.x系列对应Selenium 3.x系列。
- 示例Maven依赖(以稳定兼容版本为例):
<dependency> <groupId>io.appium</groupId> <artifactId>java-client</artifactId> <version>8.5.1</version> </dependency> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>4.10.0</version> </dependency>
清理依赖冲突
检查项目是否存在间接引入的冲突Selenium版本:- 用Maven命令
mvn dependency:tree或Gradle命令gradle dependencies查看依赖树,定位冲突来源。 - 在依赖中排除冲突的Selenium模块,示例Maven配置:
<dependency> <groupId>io.appium</groupId> <artifactId>java-client</artifactId> <version>8.5.1</version> <exclusions> <exclusion> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> </exclusion> </exclusions> </dependency>
- 用Maven命令
重新构建项目
清理本地依赖缓存,重新执行构建命令:- Maven:执行
mvn clean install - Gradle:执行
gradle clean build
- Maven:执行
内容的提问来源于stack exchange,提问作者Devinder kumar
相关产品推荐
相关产品推荐

