我正尝试通过Browserium上的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)
关于Bindng,我不确定是否安装正确。我解压缩了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.0-alpha-4
将所有硒依赖关系更新为4.0.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;
由于接收到的编译器源5与我正在运行的源不兼容,我还收到我要求这样做的错误,因此我还将maven编译器源编辑为7。
<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.httpcomponentshttpclient4.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>
我正尝试通过Browserium上的Appium运行示例测试。所有代码均来自BrowserStack并使用其示例.ipa文件。以下是我收到的错误的日志。例外...
此问题的根本原因是Jar hell
硒4.0.0-alpha-4的依赖项取决于Appium Java Client7.1.0。