试图使用Appium(Java)在android设备上自动化本机应用程序,但遇到了以下错误:
线程"main"中的异常java.lang.NoClassDefFoundError: org/openqa/selenium/远程/内部/JsonToWebElementConverter atwibu.main(wibu.java:21)
原因:java.lang.ClassNotFoundException:org.openqa.selenium.remote.internal。JsonToWebElementConverter位于java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)位于java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)位于java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)…1更多信息
这是我的代码:
import io.appium.java_client.MobileElement;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.android.AndroidElement;
import io.appium.java_client.remote.MobileCapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import java.net.MalformedURLException;
import java.net.URL;
public class wibu {
public static void main(String[] args) throws MalformedURLException {
DesiredCapabilities dc = new DesiredCapabilities();
dc.setCapability(MobileCapabilityType.DEVICE_NAME, "emulator-5554");
dc.setCapability("platformName", "android");
dc.setCapability("appPackage", "com.facebook.katana");
dc.setCapability("appActivity", "com.facebook.katana.LoginActivity");
AndroidDriver<AndroidElement> ad = new AndroidDriver<AndroidElement>(new URL("http://127.0.0.1:4723/wd/hub"),dc);
String facebook_username = "username";
String facebook_password = "password";
MobileElement el1 = (MobileElement) ad.findElementByAccessibilityId("Username");
el1.sendKeys(facebook_username);
MobileElement el2 = (MobileElement) ad.findElementByAccessibilityId("Password");
el2.sendKeys(facebook_password);
MobileElement el3 = (MobileElement) ad.findElementByAccessibilityId("Log In");
el3.click();
MobileElement el4 = (MobileElement) ad.findElementByXPath("/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.LinearLayout/android.widget.Button[1]");
el4.click();
MobileElement el5 = (MobileElement) ad.findElementById("com.google.android.gms:id/credential_save_reject");
el5.click();
}
}
所以最终,
最初的问题是java client 7.6.0与Selenium 4不兼容。
为了使用Selenium 4,appium版本应为8。
最新的appium-java客户端版本是8.0.0-beta2
https://mvnrepository.com/artifact/io.appium/java-client/8.0.0-beta2
从Appium 7迁移到8
本指南中列出的破坏性更改列表:
https://github.com/appium/java-client/blob/master/docs/v7-to-v8-migration-guide.md
Android驱动程序
为了进行双重检查,这里提供了最新的API文档:
https://javadoc.io/doc/io.appium/java-client/latest/index.html
当我在日食中执行上述代码时。抛出以下错误。 线程“main”java.lang.NoClassDefFoundError中的异常:org/apache/hc/core5/http/ClassicHttpRequest at testcases.TestFindingElement.main(TestFindingElement.java:14)由:java.lang.ClassNotFoundEx
线程“main”java.lang.noClassDeffounderror:bin/crawl中出现异常,原因是:java.net.urlClassLoader$1.java.net.urlClassLoader.AccessController.doprivileged(本机方法)在java.net.urlClassLoader.findClass(urlClassLoader.java:20
我运行了一个用Java编写的Spark流媒体程序来读取Kafka的数据,但是我遇到了这个错误,我试图找出可能是因为我使用scala或Java的版本太低。我使用了JDK版本15,但仍然出现了这个错误,有人能帮我解决这个错误吗?非常感谢。 这是我运行项目时的终端: 这是项目的文件pom.xml: 这是项目的文件主体:
代码重构后,我在尝试编译Maven项目时遇到以下错误: 我尝试删除文件夹但问题未解决。您知道如何解决此问题吗?
我有任务要做,我有一个问题,我得到了错误。我不知道怎么修理它: 线程“main”java.lang.NullPointerException在test.main(test.java:29)中出现异常
我有任务要做,我有一个问题,我得到了错误。我不知道如何修理它: 异常线程"main"java.lang.NullPointerExcema在test.main(test.java:29) 这是我的密码: