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

Gal*_*let 11 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();
Run Code Online (Sandbox Code Playgroud)

方法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);
        }
Run Code Online (Sandbox Code Playgroud)

ayc*_*dee 0

在对 JavaScript 密集型网站进行功能测试时,操作完全失败的一个常见原因是,这些操作是在网站完成初始化之前执行的。测试这种情况的最简单方法是在执行操作之前添加短暂的睡眠。说2秒。

如果这解决了问题,那么您就知道页面初始化和测试代码运行之间存在竞争条件。

此时,您可以重写代码以等待操作成为可能