【问题标题】:Swipe method not supporting in android appiumandroid appium不支持滑动方法
【发布时间】:2015-07-08 05:52:54
【问题描述】:

我尝试在android中使用滑动方法,但它不起作用。

代码:-

public void swipe() {
    JavascriptExecutor js = (JavascriptExecutor) driver;
    HashMap < String, Double > swipeObject = new 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.0);
    js.executeScript("emulator: swipe", swipeObject);
}

错误:-

org.openqa.selenium.WebDriverException: Not yet implemented.

任何帮助都非常感谢。

【问题讨论】:

  • 你试过 driver.swipe(startx, starty, endx, endy, duration); ?
  • 是的,试过了,但同样的问题发生了。
  • 对我来说,滑动方法正在工作...您能否分享您的屏幕绑定值的屏幕截图,因为由于传递的坐标不正确,我过去面临同样的问题。还要确保您已将 java.client 最新的 JARS 导入到您的项目中。
  • 我已经用上述坐标调用了 swipe(),但问题仍然存在。
  • 您是否将客户端 JAR 文件集成到您的项目中?

标签: android selenium appium


【解决方案1】:

将上下文更改为 NATIVE_APP 对我有用:

String originalContext = driver.getContext();
driver.context("NATIVE_APP");
driver.swipe(startx, starty, endx, endy, duration);
driver.context(originalContext );

【讨论】:

    【解决方案2】:

    Web 视图不支持/不支持滑动,在滑动之前检查上下文并将其更改为 Native,滑动后您可以恢复为 Web 视图。

    【讨论】:

    • 对我来说它有效 - 正如你所说,我们需要在滑动之前切换到本机上下文,但硬编码 x, y 不是最好的方法。我试图获取要交换的元素的坐标: int startx = msg.getLocation().getX(); int starty = msg.getLocation().getY();但它返回的坐标不是绝对的,而是相对于浏览器视图
    【解决方案3】:

    如果您可以访问 mac,请检查一次坐标并从 appium 检查器获取坐标。

    为了让滑动生效,时间的最小值应该是 500,你能发布你的完整日志吗?

    【讨论】:

      猜你喜欢
      • 2015-03-27
      • 2015-06-22
      • 2018-11-11
      • 2022-11-19
      • 2016-02-26
      • 1970-01-01
      • 1970-01-01
      • 2017-01-22
      • 1970-01-01
      相关资源
      最近更新 更多