尝试在应用程序中滑动对话(删除它),但Appium充当点击。我在两个设备上尝试了它,它们具有不同的变量,包括开始和结束位置以及持续时间。这是代码:
driver.swipe(250,240,0,240,300);
有没有人看过同样的问题,如果有的话,你的解决方案是什么?
我尝试使用press-wait-moveTo-release
以及longPress-moveTo-release
操作的TouchActions,但结果相同。
更重要的是,我可以说我可以无问题地向上和向下滚动,但从左到右,反之亦然,似乎无法正常工作。
其他一些信息:
答案 0 :(得分:2)
我使用此代码并证明了它本身。它适用于iOS和Android。
它可能被视为已弃用,但对我来说它有效,我找不到更好的解决方案。
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);
break;
case LEFT:
startY = (int) (size.height /2);
startX = (int) (size.width * 0.05);
endX = (int) (size.width * 0.90);
break;
case UP:
endY= (int) (size.height * 0.70);
startY = (int) (size.height * 0.30);
startX = (size.width / 2);
break;
case DOWN:
startY = (int) (size.height * 0.70);
endY = (int) (size.height * 0.30);
startX = (size.width / 2);
break;
}
new TouchAction(driver)
.press(startX, startY)
.waitAction(Duration.ofMillis(duration))
.moveTo(endX, startY)
.release()
.perform();
}
DIRECTION
只是一个值为UP, DOWN...
答案 1 :(得分:0)
实施方法可能如下
public void swipeScreen(String direction) {
JavascriptExecutor js = Device.driver;
HashMap<String, String> scrollObject = new HashMap<>();
scrollObject.put("direction", direction);
js.executeScript("mobile: scroll", scrollObject);
}
然后使用(别忘了先声明String )
调用上述方法String DOWN="down";
String LEFT ="left";
swipeScreen(DOWN); //or swipeScreen(LEFT); ....likewise up and Right
上的最佳参考
答案 2 :(得分:-1)
尝试一下:
Thread.sleep(3000);
new TouchAction(driver)
.press(PointOption.point(500, 596))
.waitAction(WaitOptions.waitOptions(Duration.ofMillis(1000)))
.moveTo( PointOption.point(518, 478))
.release()
.perform();