我尝试使用以下代码在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无法滚动和选择对象。
有没有人找到解决方法呢?
答案 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解决:滚动,你的代码看起来很好,你也可以尝试使用垂直滑动而不是滚动。