Java Appium:ClassNotFoundException:org.openqa.selenium.remote.internal.ApacheHttpClient$Factory
在我的maven项目中,我有以下依赖项:Java Appium:ClassNotFoundException:org.openqa.selenium.remote.internal.ApacheHttpClient$Factory,java,appium,Java,Appium,在我的maven项目中,我有以下依赖项: <!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java --> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifac
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.141.59</version>
</dependency>
<dependency>
<groupId>io.appium</groupId>
<artifactId>java-client</artifactId>
<version>3.4.1</version>
</dependency>
org.seleniumhq.selenium
硒爪哇
3.141.59
木卫一
java客户端
3.4.1
然后,我有一个非常基本的代码来打开一个应用程序:
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import org.openqa.selenium.remote.DesiredCapabilities;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.android.AndroidElement;
import io.appium.java_client.remote.MobileCapabilityType;
File f = new File("src");
File fs = new File(f,"ApiDemos-debug.apk");
DesiredCapabilities cap = new DesiredCapabilities();
cap.setCapability(MobileCapabilityType.DEVICE_NAME, "myAVD");
cap.setCapability(MobileCapabilityType.APP, fs.getAbsolutePath());
AndroidDriver<AndroidElement> ad = new AndroidDriver<AndroidElement>(new URL("http://127.0.0.1:4723/wd/hub"),cap);
导入java.io.File;
导入java.net.MalformedURLException;
导入java.net.URL;
导入org.openqa.selenium.remote.DesiredCapabilities;
导入io.appium.java_client.android.AndroidDriver;
导入io.appium.java_client.android.AndroidElement;
导入io.appium.java_client.remote.MobileCapabilityType;
文件f=新文件(“src”);
文件fs=新文件(f,“ApiDemos debug.apk”);
DesiredCapabilities=新DesiredCapabilities();
cap.setCapability(移动能力类型设备名称,“myAVD”);
cap.setCapability(MobileCapabilityType.APP,fs.getAbsolutePath());
AndroidDriver ad=新的AndroidDriver(新URL(“http://127.0.0.1:4723/wd/hub"(香港法例第六章),;
但是,它抱怨以下错误:
Exception in thread "main" java.lang.NoClassDefFoundError: org/openqa/selenium/remote/internal/ApacheHttpClient$Factory
at io.appium.java_client.remote.AppiumCommandExecutor.<init>(AppiumCommandExecutor.java:50)
at io.appium.java_client.AppiumDriver.<init>(AppiumDriver.java:77)
at io.appium.java_client.android.AndroidDriver.<init>(AndroidDriver.java:67)
at Appium.Appium.App.main(App.java:30)
Caused by: java.lang.ClassNotFoundException: org.openqa.selenium.remote.internal.ApacheHttpClient$Factory
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
线程“main”java.lang.NoClassDefFoundError中的异常:org/openqa/selenium/remote/internal/ApacheHttpClient$Factory
位于io.appium.java_client.remote.AppiumCommandExecutor。(AppiumCommandExecutor.java:50)
位于io.appium.java_client.AppiumDriver(AppiumDriver.java:77)
位于io.appium.java_client.android.AndroidDriver.(AndroidDriver.java:67)
位于Appium.Appium.App.main(App.java:30)
原因:java.lang.ClassNotFoundException:org.openqa.selenium.remote.internal.ApacheHttpClient$Factory
位于java.net.URLClassLoader.findClass(URLClassLoader.java:382)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:424)
位于sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
我错了吗?
如何修复它?首先要记住的是:不要混合使用selenium和appium依赖项。Appium已显式设置一个,可能会导致问题
另一个合理的问题是:您使用的是一个非常旧的客户端版本,当前的版本是检查您安装了什么Appium服务器,如果它是1.15.x+,您可能还需要使用新客户端。请删除selenium依赖项。Java客户端附带selenium deps