java - 线程“主”java.lang.ClassCastException 中的异常:java.util.HashMap 无法转换为 org.openqa.selenium.WebElement
问题描述
我正在使用此代码并生成此错误
import java.net.MalformedURLException;
import java.net.URL;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;
import io.appium.java_client.MobileDriver;
import io.appium.java_client.TouchAction;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.remote.MobileCapabilityType;
public class HandlingScrollVertical {
public static void main(String[] args) throws MalformedURLException, InterruptedException {
// TODO Auto-generated method stub
DesiredCapabilities dc= new DesiredCapabilities();
dc.setCapability(MobileCapabilityType.AUTOMATION_NAME, "Appium");
//dc.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android");
dc.setCapability(MobileCapabilityType.PLATFORM_VERSION, "7.1.1");
dc.setCapability(MobileCapabilityType.DEVICE_NAME, "Android Emulator");
dc.setCapability(MobileCapabilityType.APP, "/home/connexis/appium/AppiumMobile/src/main/java/Apps/ApiDemos.apk");
URL url =new URL("http://127.0.0.1:4723/wd/hub");
AndroidDriver<WebElement> driver= new AndroidDriver<WebElement>(url,dc);
driver.findElementsByAccessibilityId("Animation").get(1).click();
/*WebElement info=driver.findElementsById("android:id/text1").get(1);
int x1=info.getLocation().getX();
int y1=info.getLocation().getY();
int x2=x1 /2;
int y2=y1 /2;
TouchAction a = new TouchAction((MobileDriver) driver);
a.press(info).moveTo(x1,y1).perform().release();*/
Thread.sleep(8000);
driver.quit();
}
}
环境变量集:
Selenium 服务器独立 2.53
Java-Client 5.0.4 Emulator
错误日志:
Exception in thread "main" java.lang.ClassCastException: java.util.HashMap cannot be cast to org.openqa.selenium.WebElement
at org.openqa.selenium.remote.RemoteWebDriver.findElements(RemoteWebDriver.java:397)
at io.appium.java_client.DefaultGenericMobileDriver.findElements(DefaultGenericMobileDriver.java:54)
at io.appium.java_client.AppiumDriver.findElements(AppiumDriver.java:167)
at io.appium.java_client.FindsByAccessibilityId.findElementsByAccessibilityId(FindsByAccessibilityId.java:38)
at io.appium.java_client.AppiumDriver.findElementsByAccessibilityId(AppiumDriver.java:203)
at HandlingScrollVertical.main(HandlingScrollVertical.java:33)
解决方案
正如 Arnaud 在评论中指出的那样,这已被声明为一个错误,并已由 Axium 上的此拉取请求修复。
将您的 appium-android-driver 更新到更新的版本应该可以修复它。
推荐阅读
- c# - 如何在 C# .NET Core 中将字节数组转换为 IFormFile?
- html - 我的标签不适用于模板中的 if 语句
- azure-blob-storage - 删除旧的 azure blob
- angular - 基于独特系列/名称的 Highchart 传奇
- javascript - 在角度中使用样式时找不到scss文件
- java - 迭代一个数组直到提供的长度以及找到它覆盖的计数元素,如果它不止一次,则忽略相同的元素
- c++ - 使用 next_permutation c++ 使用 multimap
- python - 如何将 from_dict 提取到具有不同数组长度的 pandas 数据帧?
- java - 未能执行目标 org.fortasoft:gradle-maven-plugin
- php - 在 php (echo) 中编写多个 html 行