无法在appium iOS测试上滑动

Posted

技术标签:

【中文标题】无法在appium iOS测试上滑动【英文标题】:Cannot swipe on appium iOS test 【发布时间】:2015-05-13 01:51:35 【问题描述】:

在文档中,appium 为 java 提供了以下选项:

javascriptExecutor js = (JavascriptExecutor) driver;
HashMap<String, Double> swipeObject = new HashMap<String, Double>();
swipeObject.put("startX", 0.01);
swipeObject.put("startY", 0.5);
swipeObject.put("endX", 0.95);
swipeObject.put("endY", 0.5);
swipeObject.put("duration", 1.8);
js.executeScript("mobile: swipe", swipeObject);

我在我的测试中集成了这个,但是在导航到可以滑动的屏幕后,带有滑动的方法将不会执行该操作...在失败异常面板中,我收到以下错误:“org.openqa .selenium.WebDriverException:尚未实现”。

我想从左向右滑动,但还没找到其他解决方案...

更新: 我已经设法使用以下代码刷卡:

HashMap scrollObject = new HashMap();
    scrollObject.put("direction", "left");
;
((RemoteWebDriver) driver).executeScript("mobile: scroll", scrollObject);

问题是,即使使用多次,它也只会滑动一次......关于如何解决这个问题的任何想法?

【问题讨论】:

【参考方案1】:

如何使用iosDriver(驱动程序)并调用以下内容:

    driver.swipe(100, 100, 500, 500, 500);

【讨论】:

【参考方案2】:

please refer detailed RCA of this issue with solution

问题在于 iOS appium java 客户端以不同方式实现了滑动功能!

对于 android,它的参数名称为 endx 和 endy,它们是端点坐标!

但对于 iOS,如果命名正确,它们是 deltaX 和 deltaY。

简而言之,

Positive endx = Right direction and magnitude of endx defines swipe size
Negative endx = Left direction and magnitude of endx defines swipe size
Positive endy = Down direction and magnitude of endy defines swipe size
Negative endy = UP direction and magnitude of endy defines swipe size

StartX 和 StartY 是笔画起点的坐标!

举个例子

1. swipe(100,200,10,20,300) => swipe starting from Point (100,200) and end at Point (110,220) which means finger would move Right lower side fro current position
2. swipe(100,200,-10,20,300) => swipe starting from Point (100,200) and end at Point (90,220) which means finger would move Left lower side from current position
3. swipe(100,200,10,-20,300)=> swipe starting from Point (100,200) and end at Point (110,180) which means finger would move Right Upper side from current position
4. swipe(100,200,-10,-20,300)=> swipe starting from Point (100,200) and end at Point (90,180) which means finger would move Left Upper side from current position

【讨论】:

以上是关于无法在appium iOS测试上滑动的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS 模拟器上启动 appium 测试?

Appium_iOS_Safari测试脚本

Appium 1.6,iOS 10:在特定元素上向左滑动

appium滑动操作总结

如何在 iOS 模拟器上使用某种语言键盘启动 Appium 测试

使用 Appium 和 Ruby 测试 iOS 应用程序时等待元素加载?