Swipe/Scroll best practice with Java-Client 5

If somebody looking for solution for Swipe, Scroll for native apps on Android and iOS this is how I achieved

Android

  1. Based on co-ordinates technique

new TouchAction(driver).press(115, 650).waitAction(ofSeconds(1)).moveTo(115, 350).release().perform();

  1. Not sure if it’s possible to do with particular element ?

iOS

JavascriptExecutor js = (JavascriptExecutor) driver;
HashMap<String, String> swipeObject = new HashMap<String, String>();

  1. Method 1

        swipeObject.put("element", mobileElementToTakeActionUpon.getId());
        swipeObject.put("direction", "up");
        js.executeScript("mobile: swipe", swipeObject);
    

limitation - does more swipe than expected

  1. Method 2

         swipeObject.put("element", itemsViewTopRow.getId());
         swipeObject.put("direction", "down");
         swipeObject.put("toVisible", "true");
         js.executeScript("mobile: scroll", swipeObject);
    
  2. Co-ordinates based

         swipeObject.put("direction", "down"); //up for swipe
         swipeObject.put("startX", "90");
         swipeObject.put("startY", "400");
         swipeObject.put("endX", "90"); //"90");
         swipeObject.put("endY", "350"); //"200");
         swipeObject.put("duration", "2000");
         //js.executeScript("mobile: swipe", swipeObject); 
         js.executeScript("mobile: scroll", swipeObject);
    

limitation - does more swipe than expected

------- Bugs Found during this exercise -------

  1. https://github.com/appium/java-client/issues/784

  2. https://github.com/appium/java-client/issues/783

  3. https://github.com/appium/java-client/issues/785

  4. https://github.com/appium/appium/issues/9771

  5. https://github.com/appium/appium/issues/7914

I hope it helps and in case some info is missing / incorrect please add to thread.

Regards,
Vikram

2 Likes