1.将 java-client 改回 4.0.0 及以下,用 maven 的小伙伴可能在 pom.xml 中会默认 latest
2.用 swipe 代替,这也是官方给的建议:
楼主改了下:
/** 滑动查找 */
public void swipeSearch(int times,By by) {
for (int i = 0; i < times; i++) {
boolean a = isElementExist(by);
if (a) {
log.info("在第" + (i + 1) + "次找到了");
//找到后让该子项位置往上些,得以完全暴露
//滑动的距离根据自己app和手机尺寸来
driver.swipe(543, 1650, 543, 1000, 2000);
break;
} else {
log.info("在第" + (i + 1) + "次没找到");
//下面是滑动屏幕,和上面那个swipe不一样
driver.swipe(543, 1650, 543, 418, 2000);
}
if (i==times-1) {
//就是说滑动到最后一次了还找不到的话就判断为失败
log.info("最后一次还没有找到");
assertFail(by);
}
}
}
/** 元素是否存在 */
public boolean isElementExist(By by) {
try {
driver.findElement(by);
return true;
} catch (NoSuchElementException nee) {
return false;
}
}
/** 判断为失败 */
public void assertFail(By by) {
log.error("对元素:" + by + "采取的操作失败啦");
Assert.fail("对元素:" + by + "采取的操作失败啦");
}
3、用 android 的 uiautomator 中的 UiScrollable(以前有试验过还是 ok 的)或者 iOS 中 UIAutomation(这个就不会了)。