2015-08-28 65 views
5

我试着用下面的代码上Appium成功地滚动:Appium无法在iOS上滚动8.4

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

但是,我越来越想,当滚动超出的UITableView底部由于JavaScript错误众所周知appium问题: https://github.com/appium/appium/issues/4836

这个问题旁边的事实appium的isDisplayed()方法总是返回true(小区是否是在屏幕上可见)和appium无法点击一个不可见的细胞,意味着appium无法滚动和选择对象。

有没有人找到解决办法?

回答

1

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

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

替换“使用”你的定位,我也觉得这个滚动的问题必须要解决由Appium移动:滚动,并且你的代码看起来很好,你也可以尝试使用垂直滑动而不是滚动。

+0

Darshan,这是使用'mobile:scroll'是否正确?似乎非常类似于我在问题中的原始代码? –

+1

我认为他们从8.3解决了这个滚动问题,但它仍然存在于8.4中,我们需要找到一些替代方案。 –

+0

嗨Darshan。感谢更新的答案 - 将会给你一个答案。垂直滑动需要什么代码(而不是手机:滚动)? –