java - 如何在 Selendroid 中执行滑动操作?

标签 java touch swipe selendroid

  1. 我已经尝试使用以下代码进行滑动。
  2. 在运行测试用例时,滑动操作没有发生,我也没有收到任何错误消息。
  3. 如何在两侧从左向右滑动,反之亦然。

有以下两种方法:-

方法 1(使用 TouchActions):-

    1. //Swipe Right to Left side of the Media Viewer First Page
                    WebElement firstPages = driver.findElement(By.id("media-list"));
                    TouchActions flick = new TouchActions(driver).flick(firstPages,-100,0,0);
                    flick.perform();

    2. //perform swipe gesture
                   TouchActions swipe = new TouchActions(driver).flick(0, -20);
                   swipe.perform();

方法 2(使用 javascript):-

public static void swipe(WebDriver driver) {

            JavascriptExecutor js = (JavascriptExecutor) driver;
            HashMap<String, Double> swipeObject = new java.util.HashMap<String, Double>();
            swipeObject.put("startX", 0.95);
            swipeObject.put("startY", 0.5);
            swipeObject.put("endX", 0.05);
            swipeObject.put("endY", 0.5);
            swipeObject.put("duration", 1.8);
            js.executeScript("mobile: swipe", swipeObject);
        }

最佳答案

尝试以下实现,其中包括标准 FlickAction.SPEED_NORMAL 参数以及 flick 的 Action 生成器:

import org.openqa.selenium.interactions.touch.FlickAction;

private Action getBuilder(WebDriver driver) {
    return new Action(driver);
}

WebElement toFlick = driver().findElement(By.id("media-list"));
    Action flick = getBuilder(driver()).flick(toFlick, -500, 0, FlickAction.SPEED_NORMAL).build();
    flick.perform();

可以通过改变 X 轴坐标来执行从左向右滑动和反之亦然:

  • 向左滑动:

Action flick = getBuilder(driver()).flick(toFlick, -500, 0, FlickAction.SPEED_NORMAL).build();

  • 向右滑动:

Action flick = getBuilder(driver()).flick(toFlick, 500, 0, FlickAction.SPEED_NORMAL).build();

  • 滑动到顶部:

Action flick = getBuilder(driver()).flick(toFlick, 0, 500, FlickAction.SPEED_NORMAL).build();

  • 滑动到底部:

Action flick = getBuilder(driver()).flick(toFlick, 0, -500, FlickAction.SPEED_NORMAL).build();

关于java - 如何在 Selendroid 中执行滑动操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29210824/

相关文章:

objective-c - UIScrollView 内的水平平移手势

android - 使用 jQuery "swipe"函数导航图像数组

java - Google App Engine 中的有序列表 - JPA

java - 告诉用户输入的数字是否已经存储在数组中

html - 将悬停更改为触摸

java - Android - 触摸屏幕时执行某些操作

java - 如何在 Android 应用程序中显示 Latin-1 字符

java - 从 Java 代码启动和停止 Tomcat

javascript - 触摸事件在 Android PhoneGap WebView(甚至内置浏览器)中不起作用

jquery - 如何只滑动某些元素?