- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试通过 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/ 的绑定(bind)(针对 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.0-alpha-4 将所有 selenium 依赖项更新为 4.0.0-alpha-4
我尝试通过以下方式编辑我的 pom.xml:添加网络驱动程序依赖项
<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 compile Deleted
<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
Dependencies for selenium 4.0.0-alpha-4 depends on Appium Java Client 7.1.0.
由于您在 pom.xml 文件中声明的依赖项与 Appium Java 客户端的传递依赖项之间存在冲突,您会收到错误。如果您将Appium Java Client 4.1.2更改为Appium Java Client 7.1.0即可解决该问题。
关于java - ApacheHttpClient$Factory 抛出 java.lang.NoClassDefFoundError 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59777847/
我正在尝试打开这个 uri https://some-host/a/meta? (this url is passed to proxi.jsp page) .. 但它会重定向到身份验证服务(在 h
这个问题已经有答案了: org.openqa.selenium.remote.internal.ApacheHttpClient is deprecated in Selenium 3.14.0 -
为什么我们使用 ApacheHttpClient 而不是 HttpURLConnection?在哪些情况下我们更喜欢 HttpUrlConnection? Apache 客户端已被弃用,但我们仍在使用
我正在尝试运行我从 here 复制粘贴的代码,特别是这一行 val region = Region.AP_SOUTHEAST_1 val s3 = S3Client.builder().region(
我正在尝试通过 BrowserStack 上的 Appium 运行示例测试。所有代码均来自 BrowserStack 并使用其示例 .ipa 文件。以下是我收到的错误的日志。 Exception in
我想通过 SSL 向 SOAP 服务器(Microsoft IIS 服务器)发送 SOAP 请求。当我通过带有 SSL - Keystore 配置的 soapUI 工具测试 SOAP 请求时,它会正确
除了移动应用程序,我还需要将 Kii MbaaS 服务集成到我的一个 Web 应用程序中。我正在使用 Android SDK 并且能够连接它。然而,对于使用 Java 解决方案的网站,他们没有任何 S
在我的 maven 项目中,我有以下依赖项: org.seleniumhq.selenium selenium-java 3.1
我目前正在使用 Selenium 3.14.0 库,其中 org.openqa.selenium.remote.internal.ApacheHttpClient 已被弃用,没有其他信息。应该改用哪个
我是一名优秀的程序员,十分优秀!