[英]How to scroll up/down in appium-android
我有一个应用程序页面,我需要在其中垂直滚动才能到达该应用程序的元素。
我用谷歌搜索并尝试了许多解决方案。 许多命令已弃用,appium中不再支持。 此外,Stack中的先前问题/答案也无济于事。 我正在使用appium v1.13.0 + Java(IntelliJ)。
有时我会看到此错误:
java.lang.ClassCastException: io.appium.java_client.android.AndroidDriver cannot be cast to org.openqa.selenium.interactions.HasTouchScreen
无论如何,我的问题不只是解决提到的错误。 我正在寻找可行且正确的命令来使appium进行滚动操作。 请带给我完整的示例项目,因为我是大三。 谢谢
我的刷卡方法:
public void swipe(int startX, int startY, int endX, int endY, int msDuration) {
TouchAction touchAction = new TouchAction(mDriver);
touchAction.press(PointOption.point(startX, startY))
.waitAction(WaitOptions.waitOptions(Duration.ofMillis(msDuration)))
.moveTo(PointOption.point(endX, endY))
.release();
touchAction.perform();
}
尝试这个
String scrollViewContainer_finder = "new UiSelector().resourceIdMatches(\".*id/your_scroll_view_id\")";
String neededElement_finder = "new UiSelector().resourceIdMatches(\".*id/elemnt1\")";
WebElement abc = driver.findElement(MobileBy.AndroidUIAutomator("new UiScrollable(" + scrollViewContainer_finder + ")" +
".scrollIntoView(" + neededElement_finder + ")"));
对于垂直/水平滑动,我使用的是TouchAction:
TouchAction touchAction = new TouchAction((PerformsTouchActions) driver);
touchAction.press(startPoint)
.waitAction(WaitOptions.waitOptions(Duration.ofMillis(waitBetweenSwipes)))
.moveTo(endPoint)
.release()
.perform();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.