我需要使用appium + selenium + java垂直(上下)和水平(左和右)滚动。任何人都可以帮我解释这个代码所需的代码片段,以便我在其他项目中进一步使用它。
答案 0 :(得分:4)
要从右向左滑动,请使用以下代码
Dimension size = driver.manage().window().getSize();
int startx = (int) (size.width * 0.8);
int endx = (int) (size.width * 0.20);
int starty = size.height / 2;
driver.swipe(startx, starty, endx, starty, 1000);
从左到右:方向只需将start-x更改为end-x,将end-x更改为startx
向上/向下滑动:x轴坐标将保持不变,只有y坐标会发生变化。
如果您想了解有关坐标的更多信息,请打开" 指针位置"设置来自" 开发人员选项"并手动观察坐标。
答案 1 :(得分:0)
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();
}
以下是向所有方向滑动的示例代码。只需提供滑动的方向和持续时间。
代码被证明是好的。