ApacheHttpClient $ Factory引发java.lang.NoClassDefFoundError异常

我正在尝试在BrowserStack上通过Appium运行样本测试。所有代码均来自BrowserStack并使用其示例.ipa文件。以下是我收到的错误的日志。

Exception in thread "main" java.lang.NoClassDefFoundError: org/openqa/selenium/remote/internal/ApacheHttpClient$Factory
at io.appium.java_client.remote.AppiumCommandExecutor.<init>(AppiumCommandExecutor.java:55)
at io.appium.java_client.AppiumDriver.<init>(AppiumDriver.java:131)
at io.appium.java_client.ios.IOSDriver.<init>(IOSDriver.java:82)
at BrowserStackIOS.main(BrowserStackIOS.java:28)
Caused by: java.lang.ClassNotFoundException: org.openqa.selenium.remote.internal.ApacheHttpClient$Factory
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
    ... 4 more

这是在第28行引用的代码行

IOSDriver<IOSElement> driver = new IOSDriver<IOSElement>(new URL("http://"+userName+":"+accessKey+"@hub-cloud.browserstack.com/wd/hub"), caps);

除此之外,我还在使用maven。我从https://search.maven.org/search?q=g:io.appium%20AND%20a:java-client获取依赖项

来自https://selenium.dev/downloads/的绑定(适用于Java)

关于Bindngs,我不确定是否安装正确。我解压缩了zip文件,并将libs文件夹中的.jar文件添加到了我的依赖项中。这是截图https://prnt.sc/qoqwzf这是selenium / remote / internal文件夹的截图https://prnt.sc/qoqxh8

注意:以前从未使用过maven,因此我将仅提供其他说明:运行mvn install -U时,我会获得构建成功,而当我尝试构建项目时,只会收到该错误。

我尝试解决该错误的方法是:我已经使用https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java/4.0将所有硒依赖项更新为4.0.0-alpha-4 。 0-alpha-4

我尝试通过以下方法编辑pom.xml:添加Web驱动程序依赖项

 <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-remote-driver</artifactId>
            <version>4.0.0-alpha-4</version>
        </dependency>

添加Safari Web驱动程序依赖项

       <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-safari-driver</artifactId>
            <version>4.0.0-alpha-4</version>
        </dependency>

附加说明:我的POM.xml看起来https://search.maven.org/remotecontent?filepath=io/appium/java-client/7.3.0/java-client-7.3.0.pom中给出的完全一样一些其他的依赖关系,如上所述。

以下是我在主要班级中要求的进口货物

import java.net.URL;
import java.util.List;
import java.net.MalformedURLException;

import org.openqa.selenium.support.ui.WebDriverWait;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.support.ui.ExpectedConditions;

import io.appium.java_client.MobileBy;
import io.appium.java_client.ios.IOSDriver;
import io.appium.java_client.ios.IOSElement;

根据收到的错误请求,我也将maven编译器源代码编辑为7,这是由于编译器源5与我正在运行的源代码不兼容。

<properties>
        <maven.compiler.source>1.7</maven.compiler.source>
        <maven.compiler.target>1.7</maven.compiler.target>
    </properties>

以下是我编辑过的pom的开头,不确定是否可能是个问题,但我想其他人也会知道。

<modelVersion>4.0.0</modelVersion>
    <groupId>-</groupId>
    <artifactId>First</artifactId>
    <version>1.0-SNAPSHOT</version>
    <name>java-client</name>
    <description>Java client for Appium Mobile Webdriver</description>
    <url>http://appium.io</url>

如果需要任何其他信息,请告诉我。我目前正在调整环境,因此出现了各种错误并已解决。这是我唯一无法真正了解我的人。

编辑:我的Appium依赖项是

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

我目前所有的依赖

<dependencies>
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>4.0.0-alpha-4</version>
        <scope>compile</scope>
        <exclusions>
            <exclusion>
                <artifactId>*</artifactId>
                <groupId>com.google.code.gson</groupId>
            </exclusion>
            <exclusion>
                <artifactId>htmlunit-driver</artifactId>
                <groupId>*</groupId>
            </exclusion>
            <exclusion>
                <artifactId>*</artifactId>
                <groupId>net.sourceforge.htmlunit</groupId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-support</artifactId>
        <version>4.0.0-alpha-4</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-api</artifactId>
        <version>4.0.0-alpha-4</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-safari-driver</artifactId>
        <version>4.0.0-alpha-4</version>
    </dependency>
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-remote-driver</artifactId>
        <version>4.0.0-alpha-4</version>
    </dependency>
    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.8.5</version>
        <scope>compile</scope>
    </dependency>

已删除

org.apache.httpcomponents httpclient 4.5.9编译已删除

    <dependency>
        <groupId>cglib</groupId>
        <artifactId>cglib</artifactId>
        <version>3.2.12</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>commons-validator</groupId>
        <artifactId>commons-validator</artifactId>
        <version>1.6</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>3.9</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.6</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.1.8.RELEASE</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjweaver</artifactId>
        <version>1.9.4</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.26</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>io.appium</groupId>
        <artifactId>java-client</artifactId>
        <version>4.1.2</version>
    </dependency>
    <!-- Thanks for using https://jar-download.com -->
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>4.5.10</version>
    </dependency>
</dependencies>
莫扎米尔

造成此问题的根本原因是Jar hell

硒4.0.0-alpha-4的依赖性取决于Appium Java Client 7.1.0。

由于在pom.xml文件中声明的依赖项与Appium Java Client的传递性依赖项之间的冲突,您会收到错误消息。如果将Appium Java Client 4.1.2更改Appium Java Client 7.1.0,将解决此问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

异常java.lang.NoClassDefFoundError:PIM

testng中的线程“ main”中的异常java.lang.NoClassDefFoundError

异常java.lang.NoClassDefFoundError JavaMail Tomcat v8.5

Appium脚本为Android应用程序引发“线程“主”中的异常java.lang.NoClassDefFoundError:org / objectweb / asm / Type”

某些设备上的java.lang.NoClassDefFoundError异常

为什么线程“ main”中的异常java.lang.NoClassDefFoundError :?

线程“主”中的异常java.lang.NoClassDefFoundError

异常:java.lang.NoClassDefFoundError-org / json / simple / JSONValue

java.lang.NoClassDefFoundError:org / springframework / core / io /资源异常

hibernate-validator中的异常。嵌套的异常是java.lang.NoClassDefFoundError:ConfigurationImpl

获取“ java.lang.NoClassDefFoundError:com / beust / jcommander / ParameterException”异常

java错误:线程“ main”中的异常java.lang.NoClassDefFoundError

Akka-Http 2.4.9引发java.lang.NoClassDefFoundError:akka / actor / ActorRefFactory异常

致命异常:java.lang.NoClassDefFoundError

ANTLR4 TestRig(grun)引发java.lang.NoClassDefFoundError异常

java-线程“ main”中的异常java.lang.NoClassDefFoundError:io / kubernetes / client / openapi / ApiException

致命异常:Firebase-Messaging-Intent-Handle-java.lang.NoClassDefFoundError

线程“主”中的异常java.lang.NoClassDefFoundError:org / apache / commons / lang / builder / CompareToBuilder

IntelliJ:线程“主”中的异常java.lang.NoClassDefFoundError:org / apache / spark / sql / types / DataType

错误yarn.ApplicationMaster:用户类引发异常:java.lang.NoClassDefFoundError:scala / Function0 $ class

线程“主”中的异常java.lang.NoClassDefFoundError:scala / Cloneable

线程“主”中的异常java.lang.NoClassDefFoundError:Main $ 1 Java?

线程“主”中的异常java.lang.NoClassDefFoundError:rpc / Stub

使用json-schema-validator-2.2.6时获取异常java.lang.NoClassDefFoundError

实例化休眠配置会引发错误:线程“main”中的异常 java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException

线程“main”中的异常 - java.lang.NoClassDefFoundError

线程“main”中的 NetBeans 异常 java.lang.NoClassDefFoundError

Cucumber - Java - 线程“main”中的异常 java.lang.NoClassDefFoundError: io/cucumber/plugin/ConcurrentEventListener

抛出异常;嵌套异常是 java.lang.NoClassDefFoundError: org/codehaus/jackson/JsonFactory