You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用TestNG+Maven运行Appium测试报NoClassDefFoundError错误如何解决?

问题根因

该报错是依赖版本不兼容导致:你使用的io.appium:java-client 7.6.0属于7.x版本系列,官方适配的是Selenium 3.x版本,而你引入的selenium-java 4.0.0属于Selenium 4大版本,类结构做了大幅调整,Appium 7.x客户端找不到Selenium 4中调整路径后的org.openqa.selenium.virtualauthenticator.HasVirtualAuthenticator类,因此抛出类找不到异常。

解决步骤
  • 第一步:调整依赖版本,二选一即可:
    方案1:保持Appium Java Client版本不变,降级Selenium到适配版本
    将pom.xml中selenium-java的版本修改为3.141.59即可,这是Appium 7.6.0官方适配的Selenium版本。
    方案2:保持Selenium 4版本不变,升级Appium Java Client到适配版本
    将pom.xml中java-client的版本修改为8.5.1及以上版本即可,该版本系列适配Selenium 4,注意升级后部分API路径有调整,需要同步修改Java代码中的导入语句。
  • 第二步:修复pom.xml的结构错误
    maven-compiler-plugin是Maven编译插件,不能放在<dependencies>标签下,需要移到<build><plugins>标签中,否则会引入不必要的依赖冲突,示例配置如下:
    <build>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.8.1</version>
          <configuration>
            <source>1.8</source>
            <target>1.8</target>
          </configuration>
        </plugin>
      </plugins>
    </build>
    
  • 第三步:修复Java代码中的配置错误
    当前代码中Appium服务地址配置错误,你填写的http://0.0.0.1:4723/wd/hub是无效地址,改为默认的http://127.0.0.1:4723/wd/hub即可。如果你需要测试原生APP,需要删除BROWSER_NAME配置项,填写APP配置对应的apk本地路径。
  • 第四步:更新依赖后重新运行
    右键Eclipse中的项目,选择Maven -> Update Project,勾选Force Update of Snapshots/Releases,完成依赖更新后再以TestNG测试方式运行即可。

内容的提问来源于stack exchange,提问作者Tt tt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 22:45:06