0

I want to swipe in mobile web site using selenium on java.

I have tried the following code. But it doesn't help me out.

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();

  Result:-  org.openqa.selenium.chrome.ChromeDriver cannot be cast to org.openqa.selenium.interactions.HasTouchScreen


2. //perform swipe gesture
               TouchActions swipe = new TouchActions(driver).flick(0, -20);
               swipe.perform();
3.             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);
        }

 Result:  unknown error: swipe is not defined(..)
Galet
  • 5,853
  • 21
  • 82
  • 148

1 Answers1

0

You could trigger an event via javascript eg. with jquery trigger

JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("$('#media-list').trigger('swipe', {startX: 0.95})");
lance-java
  • 25,497
  • 4
  • 59
  • 101
  • I have tried your code. But its doesn't do swipe or any action and no error. – Galet Feb 12 '16 at 10:28
  • Looks like you might need to fire touchstart, touchmove and touchend events rather than swipe. JQuery example [here](http://stackoverflow.com/questions/10406783/simulating-touchstart-and-touchend-events). More info on the events [here](http://www.javascriptkit.com/javatutors/touchevents.shtml) – lance-java Feb 12 '16 at 10:45