如何使用appium + Java在Android App中滚动?

时间:2016-01-13 13:38:16

标签: java selenium appium

我需要使用appium + selenium + java垂直(上下)和水平(左和右)滚动。任何人都可以帮我解释这个代码所需的代码片段,以便我在其他项目中进一步使用它。

2 个答案:

答案 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();

}

以下是向所有方向滑动的示例代码。只需提供滑动的方向和持续时间。

代码被证明是好的。