Как провести пальцем по горизонтали с помощью appium - PullRequest
0 голосов
/ 24 мая 2018

# screen unable to swipe

У меня есть 5 экранов прокрутки, и мой код просто застрял на 3-м экране, я хочу прокрутить по горизонтали.

Ответы [ 2 ]

0 голосов
/ 24 мая 2018

вот код, который оказался мне полезен:

enum DIRECTION{UP, DOWN, 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);
            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();

}

Надеюсь, это поможет ...

0 голосов
/ 24 мая 2018

Используйте приведенный ниже метод для прокрутки по горизонтали:

public static void swipeHorizontal(AppiumDriver driver, double startPercentage, double finalPercentage, double anchorPercentage, int duration) throws Exception {
            Dimension size = driver.manage().window().getSize();
            int anchor = (int) (size.height * anchorPercentage);
            int startPoint = (int) (size.width * startPercentage);
            int endPoint = (int) (size.width * finalPercentage);
            new TouchAction(driver).press(startPoint, anchor).waitAction(Duration.ofMillis(duration)).moveTo(endPoint, anchor).release().perform();
        }

Вызовите указанный выше метод по:

swipeHorizontal((AppiumDriver) driver,0.9,0.01,0.5,2000);
...