javascript - 如何使用 webdriverio 和 appium 按下点击并按住并向下滚动

标签 javascript appium webdriver-io

如何使用 webdriverio 和 appium 按住并向下滚动。我使用了普通的卷轴,但似乎没有任何效果。我可以手动按住并滑动,但以下命令不起作用

这是我尝试过的,但是,我无法用它实现任何目标:

browser.touchAction([
                { action: 'longPress'},
                { action: 'moveTo', x: -10, y: 0},
                { action: 'release'}
            ])
        }

最佳答案

public static void fingerSwipe(int startX, int startY, int endX, int endY, long timeInMillis){
    PointerInput touchAction = new PointerInput(PointerInput.Kind.TOUCH, "touchAction");
    Interaction moveToStart = touchAction.createPointerMove(Duration.ZERO, PointerInput.Origin.viewport(), startX, startY);
    Interaction pressDown = touchAction.createPointerDown(PointerInput.MouseButton.LEFT.asArg());
    Interaction moveToEnd = touchAction.createPointerMove(Duration.ofMillis(timeInMillis), PointerInput.Origin.viewport(), endX, endY);
    Interaction pressUp = touchAction.createPointerUp(PointerInput.MouseButton.LEFT.asArg());

    Sequence swipe = new Sequence(touchAction, 0);
    swipe.addAction(moveToStart);
    swipe.addAction(pressDown);
    swipe.addAction(moveToEnd);
    swipe.addAction(pressUp);

    driver.perform(Arrays.asList(swipe));
}

我使用selenium交互包使用JAVA和appium执行滑动。 尝试在 Appium 版本 - 1.15.0 及更高版本的 WebDriverIo 中使用类似于上述代码的内容。您只需根据要执行的滑动传递输入参数即可。

'long timeInMillis' 是滑动的时间段。

关于javascript - 如何使用 webdriverio 和 appium 按下点击并按住并向下滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60696585/

相关文章:

javascript - 模拟 API 不起作用时匹配 url 中动态部分的正则表达式

javascript - 处理 jQuery deferred.done 被调用,即使请求被中止?

javascript - AngularJS:如何替换#39;和放大器;带撇号和空白

java - Appium 错误与 testdroid : java. lang.NoClassDefFoundError: org/openqa/selenium/internal/HasIdentity

appium - 如何使用 Appium 启用/禁用应用权限?

javascript - 引用错误 : variable is not defined with underscore template

android - Firebase 是否支持 Appium 测试

javascript - 如何使用两个 Xpath 构造元素 - WebdriverIO

javascript - 我可以在 1 之前有 2 个使用 Mocha 的描述吗?

javascript - webdriverio waitUntil 和 getUrl 与模式