运行首个Appium程序报JsonToWebElementConverter类NoClassDefFoundError求助
Appium NoClassDefFoundError 报错解决方案
你遇到的java.lang.NoClassDefFoundError: org/openqa/selenium/remote/internal/JsonToWebElementConverter报错核心原因是Appium Java Client和Selenium的版本不兼容,可按以下步骤排查解决:
- 第一步:做版本配对
Selenium 4对核心类的包路径做了重构,JsonToWebElementConverter类的路径从Selenium3的org/openqa/selenium/remote/internal迁移到了新的路径,低于8.x版本的Appium Java Client仅适配Selenium3,无法兼容Selenium4,二选一执行即可:- 若保留Selenium4:将Appium Java Client升级到8.3.0及以上稳定版本
- 若保留当前低版本Appium Java Client:将Selenium版本回退到3.141.59(Selenium3最终稳定版)
- 第二步:排查依赖冲突
如果你使用Maven/Gradle做依赖管理,执行对应命令查看依赖树,确认是否有多个版本的Selenium包被同时引入:- Maven排查命令:
mvn dependency:tree - Gradle排查命令:
gradle dependencies
找到冲突的Selenium版本后,用exclusion标签排除不需要的版本即可
- Maven排查命令:
- 第三步:手动导包场景额外校验
如果你是手动下载jar包导入项目,需要确认所有Selenium相关jar包(含selenium-api、selenium-remote-driver、selenium-support等)版本完全统一,同时删除所有旧版本的Appium、Selenium残留jar包,避免多版本冲突 - 第四步:清理缓存重新构建
修改依赖后清理IDE缓存再重新编译运行:- IDEA操作:File -> Invalidate Caches,勾选清理选项后重启IDE,再执行build
- Eclipse操作:Project -> Clean,选择对应项目清理后重新编译
你提到的报错截图如下:
内容的提问来源于stack exchange,提问作者Shashikant Chourasia
相关产品推荐
相关产品推荐

