Appium无法在iOS 8.4上滚动

时间:2015-08-28 08:51:40

标签: java testing automation appium

我尝试使用以下代码在Appium上成功滚动:

// java
JavascriptExecutor js = (JavascriptExecutor) driver;
HashMap<String, String> scrollObject = new HashMap<String, String>();
scrollObject.put("direction", "down");
scrollObject.put("element", ((RemoteWebElement) element).getId());
js.executeScript("mobile: scroll", scrollObject);

但是,由于已知的appium问题,尝试滚动超出UITableView底部时出现javascript错误: https://github.com/appium/appium/issues/4836

此问题与appium的isDisplayed()方法一起返回true(无论该单元格是否在屏幕上可见),appium无法点击不可见的单元格,意味着appium无法滚动和选择对象。

有没有人找到解决方法呢?

2 个答案:

答案 0 :(得分:1)

所以目前看来可能没有办法解决这个问题。上面提到的Darshan这个滚动问题仍然存在于iOS 8.4中,并且从上网看起来似乎其他人有相同的观点

答案 1 :(得分:0)

使用轻弹作为可能的临时解决方案。我们可以在屏幕上轻弹和滚动以及元素。我们实际上无法轻弹UIAScrollView,但我们可以在UIACollectionView上。

JavascriptExecutor js = (JavascriptExecutor) driver;
HashMap scrollObject = new HashMap();
scrollObject.put("direction", "down");
js.executeScript("mobile: scroll", scrollObject);

要解决isDisplayed()问题,请务必尝试

 if(!driver.findElements(By.name(using)).isEmpty()) {
...
}

替换&#39;使用&#39;通过你的定位器,我认为这个滚动问题必须由Appium mobile解决:滚动,你的代码看起来很好,你也可以尝试使用垂直滑动而不是滚动。