Appium无法在iOS上滚动8.4
问题描述:
我试着用下面的代码上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无法滚动和选择对象。
有没有人找到解决办法?
答
所以目前看起来似乎可能没有办法解决这个问题。 Darshan上面提到的这个滚动问题在iOS 8.4中依然存在,而且从浏览互联网看起来其他人有相同的看法
答
使用轻弹作为可能的临时解决方案。我们可以在屏幕上滑动,也可以在元素上滚动。我们实际上不能在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移动:滚动,并且你的代码看起来很好,你也可以尝试使用垂直滑动而不是滚动。
Darshan,这是使用'mobile:scroll'是否正确?似乎非常类似于我在问题中的原始代码? –
我认为他们从8.3解决了这个滚动问题,但它仍然存在于8.4中,我们需要找到一些替代方案。 –
嗨Darshan。感谢更新的答案 - 将会给你一个答案。垂直滑动需要什么代码(而不是手机:滚动)? –