首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在appium-android中上下滚动

如何在appium-android中上下滚动
EN

Stack Overflow用户
提问于 2019-08-19 12:55:42
回答 3查看 754关注 0票数 0

我有一个应用程序页面,我需要垂直滚动到应用程序的一个元素。

我在谷歌上搜索并尝试了很多解决方案。许多命令已被弃用,在appium中不再受支持。此外,Stack中之前的问题/答案对我也没有帮助。我使用的是Appiumv1.13.0+ Java (IntelliJ)。

有时我会看到这个错误:

代码语言:javascript
复制
java.lang.ClassCastException: io.appium.java_client.android.AndroidDriver cannot be cast to org.openqa.selenium.interactions.HasTouchScreen

无论如何,我的问题不仅仅是解决前面提到的错误。我正在寻找可行的和正确的命令来使用appium进行滚动操作。请给我完整的样本项目,因为我是初级的。谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-08-19 13:00:45

尝尝这个

代码语言:javascript
复制
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 + ")"));
票数 0
EN

Stack Overflow用户

发布于 2019-08-20 15:03:09

我的刷卡方法:

代码语言:javascript
复制
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();
}
票数 1
EN

Stack Overflow用户

发布于 2019-08-19 15:31:14

对于垂直/水平滑动,我使用TouchAction:

代码语言:javascript
复制
TouchAction touchAction = new TouchAction((PerformsTouchActions) driver);
touchAction.press(startPoint)
           .waitAction(WaitOptions.waitOptions(Duration.ofMillis(waitBetweenSwipes)))
           .moveTo(endPoint)
           .release()
           .perform();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57550682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档