无法启动appium测试:线程“main”中的异常java.lang.NoClassDefFoundError:org / openqa / selenium / WebDriver

时间:2015-09-25 12:20:12

标签: selenium-webdriver

描述: 下面是简单的AppiumDriver初始化代码,它始终失败 以下错误(独立是否存在maven依赖关系中的硒)

试验:

@Test
    public void testSomething() throws MalformedURLException {
        AppiumDriver driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), new DesiredCapabilities());
        driver.quit();
    }
}

https://www.refheap.com/d0ec095c62d8061ac2cef768d

输出错误:

    java.lang.NoClassDefFoundError: org/openqa/selenium/WebDriver
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
    at                   java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)

https://www.refheap.com/b71dbf880e1c997b3a885c13d

的pom.xml:

<dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>

        <dependency>
            <groupId>io.appium</groupId>
            <artifactId>java-client</artifactId>
            <version>3.2.0</version>
        </dependency>

       //Here was 2 cases: with and without selenium dependency
       //both was not helpful

有趣: 如果我在提到的测试所在的同一个项目中创建了没有appium的简单Selenide \ selenium测试 - 所有测试都正常工作

我做了什么: maven .m2文件夹清理 - 没有帮助, 导入\删除selenium java客户端 - 没有帮助, 创建干净的项目 - 没有帮助,

有谁知道出了什么问题?

2 个答案:

答案 0 :(得分:0)

我看到appium java-client已经在它的pom文件(https://github.com/appium/java-client/blob/master/pom.xml)中包含对selenium selenium-java 2.47.1的依赖。

当jar中相同类之间发生冲突时,可能会抛出NoClassDefFoundError。

我建议您删除

   <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>2.47.1</version>
    </dependency>
从你的pom

尝试运行它。我希望它有所帮助。

答案 1 :(得分:0)

    <groupId>org.seleniumhq.selenium</groupId>

    <artifactId>selenium-java</artifactId>

    <version>2.47.1</version>

</dependency>

在你的pom.xml中使用它