如何在Appium-Android中向上/向下滚动

时间:2019-08-19 04:55:41

标签: java appium appium-android

我有一个应用程序页面,我需要在其中垂直滚动才能到达应用程序的某个元素。

我已经用Google搜索并尝试了许多解决方案。许多命令已弃用,appium中不再支持。此外,Stack中的先前问题/答案也无济于事。 我正在使用appium v​​1.13.0 + Java(IntelliJ)。

有时我会看到此错误:

from django.shortcuts import render

def myview(request):
    #get your list of cities you may also do some filtering 
    cities = [obj.city for obj in YourModel.objects.all()]
    return render(request, 'cities_template.html', {'cities': cities})

无论如何,我的问题不只是解决提到的错误。我正在寻找可行且正确的命令来使appium进行滚动操作。 请带给我完整的示例项目,因为我是大三。 谢谢

3 个答案:

答案 0 :(得分:1)

我的刷卡方法:

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 :(得分:0)

尝试

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 + ")"));

答案 2 :(得分:0)

要在垂直/水平方向上滑动,我使用的是TouchAction:

TouchAction touchAction = new TouchAction((PerformsTouchActions) driver);
touchAction.press(startPoint)
           .waitAction(WaitOptions.waitOptions(Duration.ofMillis(waitBetweenSwipes)))
           .moveTo(endPoint)
           .release()
           .perform();