Appium [求解答] 在 Eclipse 中运行 appium 的 java 脚本,提示:java.lang.NoClassDefFoundError: org/openqa/selenium/Capabilities

杨! · 2015年05月28日 · 最后由 hello 回复于 2017年02月20日 · 2333 次阅读

操作步骤如下:
在 eclipse 中创建一个新的 java 项目,新建一个 class,引入 selenium 依赖包

编辑项目脚本如下:

运行脚本 run as --junit Test

运行后提示错误:
java.lang.NoClassDefFoundError: org/openqa/selenium/Capabilities
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2615)
at java.lang.Class.getMethod0(Class.java:2856)
at java.lang.Class.getMethod(Class.java:1668)
at org.junit.internal.builders.SuiteMethodBuilder.hasSuiteMethod(SuiteMethodBuilder.java:18)
at org.junit.internal.builders.SuiteMethodBuilder.runnerForClass(SuiteMethodBuilder.java:10)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26)

但我找到 selenium-java.jar 中是有对应的 Capabilities.class 的,找了很多资料都解决不了,希望有人知道这个问题原因帮忙解答下,万分感谢🙏!!!!!!!

共收到 10 条回复 时间 点赞
1楼 已删除

这个是 import 内容

capabilities.setCapability("device","Android")--没有 device 关键字,删掉这句

capabilities.setCapability(CapabilityType.VERSION,"4.4.2")

这句有问题,改成:

capabilities.setCapability("platformVersion","4.4.2")

import io.appium.java_client.remote.MobileCapabilityType;
...

capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION,"4.4.2")

参考:appium 的 cap 设置

https://github.com/appium/appium/blob/master/docs/cn/writing-running-appium/caps.cn.md

#3 楼 @paojiao 你好,我照着你说的方法改了一下错误的 cap 设置,但还是报那个错误

依赖包不全导致,建议使用 maven 管理 jar 包

最后终于解决了,发现是自己从网上下载的 jar 有问题,用 maven 管理 jar 包,问题就解决了

#6 楼 @miumiu pom 文件可否分享一下?

#7 楼 @success 你好,我现在已经没有用 eclispe 了,转到 android studio 进行测试用例编写了

好的。同样感谢,我自己研究一下看看吧。

杨! #10 · 2017年02月20日 Author

#9 楼 @success 亲,你可以百度下如何用 eclisp 的 maven 管理 jar 包,在 maven 中导入自己要导入的 jar 包就可以了

恩恩,谢谢

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册