【问题标题】:How to swipe in mobile browser using selenium on java如何在 java 上使用 selenium 在移动浏览器中滑动
【发布时间】:2016-02-11 12:41:34
【问题描述】:

我想在 java 上使用 selenium 在移动网站上滑动。

我已经尝试了以下代码。但这对我没有帮助。

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

【问题讨论】:

  • 您是否收到错误消息?你可以再详细一点吗?这包括 WebDriver 和浏览器版本。
  • @AndrewRegan 我已经更新了我的问题。你能看一下吗

标签: java selenium swipe gesture


【解决方案1】:

您可以通过 javascript 触发事件,例如。 jquery trigger

JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("$('#media-list').trigger('swipe', {startX: 0.95})");

【讨论】:

  • 我已经试过你的代码了。但它不会滑动或任何操作,也不会出错。
  • 看起来您可能需要触发 touchstart、touchmove 和 touchend 事件而不是滑动。 jQuery 示例here。更多活动信息here
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-18
相关资源
最近更新 更多