环境:appium android java
我要控制的控件不在当前的屏幕中,要向下滑动 1000px 才能看到这个控件,
这个滑动的操作要怎么写?
两种方法 你可以试试
根据方向来滑动
public static void scroll(String direction) {
js = (JavascriptExecutor) driver();
HashMap<String, String> scrollObject = new HashMap<String, String>();
scrollObject.put("direction", direction);
js.executeScript("mobile: scroll", scrollObject);
}
根据坐标来滑动
public static void swipe(Double startX, Double startY, Double endX,
Double endY, Double duration, int repeat) {
js = (JavascriptExecutor) driver();
HashMap<String, Double> swipeObj = new HashMap<String, Double>();
swipeObj.put("startX", startX);
swipeObj.put("startY", startY);
swipeObj.put("endX", endX);
swipeObj.put("endY", endY);
swipeObj.put("duration", duration);
// 拖动
for (int i = 0; i < repeat; i++) {
try {
js.executeScript("mobile: swipe", swipeObj);
} catch (WebDriverException ex) {
saveScreenShot();
log.logException(ex);
}
}
}
@bestfei 请问问题解决了没?
#1 楼 @sundaxian 第一方法的 direction 传的参数是什么?第二个方法 duration 的传参是什么?
#2 楼 @lihuazhang 还没,正在琢磨中。。。。
#1 楼 @sundaxian
swipeObj.put("startX", 0.0);
swipeObj.put("startY", 133.0);
swipeObj.put("endX", 0.0);
swipeObj.put("endY", 710.0);
swipeObj.put("duration", 0.5);
我这样传参,为啥没有向下滑动?
#1 楼 @sundaxian 成功了,是我参数填反了谢谢
#2 楼 @lihuazhang 解决了
#8 楼 @lihuazhang
done
#10 楼 @kevin_xu_v 可惜 Appium1.0 里的这个方法,一调用就出错,我已经在 Google Group 里询问了。
driver.scrollToExact("Test");
driver.scrollTo("Test");
用 1 楼的方法怎么试都不行, 还是自己通过.来找比较靠谱.