[英]iOS Vertical Swipe is performed as Horizontal Swipe in Appium 1.7.2
我正在使用下面的代码在iOS真实设备自动化项目中垂直滑动,但是在执行过程中,它实际上是在水平滑动。
Dimension size = driver.manage().window().getSize();
int starty = (int) (size.height * 0.80);
int endy = (int) (size.height * 0.20);
int startx = size.width / 2;
driver.swipe(startx, starty, startx, endy, 2000);
有人可以让我知道我做错了什么吗?
Xcode版本:8.3.2 iOS版本:10.2 Appium版本:1.7.2
driver.swipe
在Appium Java客户端 已过时 。 您应该停止使用它。
在iOS Appium 上进行垂直滑动时,可显示mobile:swipe以及是否需要设置方向-mobile :scroll
蟒蛇:
driver.execute_script('mobile: scroll', {'direction': 'down'});
我正在使用此工具,它在垂直和水平方向上都可以工作:
public enum DIRECTION {
DOWN, UP, LEFT, RIGHT;
}
public static void swipe(MobileDriver driver, DIRECTION direction, long duration) {
Dimension size = driver.manage().window().getSize();
int startX = 0;
int endX = 0;
int startY = 0;
int endY = 0;
switch (direction) {
case RIGHT:
startY = (int) (size.height / 2);
startX = (int) (size.width * 0.90);
endX = (int) (size.width * 0.05);
new TouchAction(driver)
.press(startX, startY)
.waitAction(Duration.ofMillis(duration))
.moveTo(endX, startY)
.release()
.perform();
break;
case LEFT:
startY = (int) (size.height / 2);
startX = (int) (size.width * 0.05);
endX = (int) (size.width * 0.90);
new TouchAction(driver)
.press(startX, startY)
.waitAction(Duration.ofMillis(duration))
.moveTo(endX, startY)
.release()
.perform();
break;
case UP:
endY = (int) (size.height * 0.70);
startY = (int) (size.height * 0.30);
startX = (size.width / 2);
new TouchAction(driver)
.press(startX, startY)
.waitAction(Duration.ofMillis(duration))
.moveTo(endX, startY)
.release()
.perform();
break;
case DOWN:
startY = (int) (size.height * 0.70);
endY = (int) (size.height * 0.30);
startX = (size.width / 2);
new TouchAction(driver)
.press(startX, startY)
.waitAction(Duration.ofMillis(duration))
.moveTo(startX, endY)
.release()
.perform();
break;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.