使用Selenium Web Driver(Appium)向下滚动Java

时间:2017-08-24 09:02:58

标签: java android selenium scroll appium

我正在尝试使用Java在APK页面中向下滚动。我正在使用Appium和Selenium。

我试过了:

JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("window.scrollBy(0,250)", "");

driver.scrollToExact();命令但“WebDriver”不支持它们。

我该怎么做?

4 个答案:

答案 0 :(得分:0)

您可以使用滑动方法

driver.swipe(startx, starty, endX, endy, 3000);

我找到了一篇可以帮助您完成任务的文章: -

http://www.software-testing-tutorials-automation.com/2015/11/appium-how-to-swipe-vertical-and.html

希望它会对你有所帮助:)。

答案 1 :(得分:0)

如果您想使用Appium在Mobile应用程序上滚动页面,可以使用Appium驱动程序使用以下代码

语法:driver.swipe(startX,startY,endX,endY,duration);

示例:

driver.swipe(200, 900, 200, 100, 2000);

如果您想在浏览器中滚动网页,可以使用传统的滚动方式使用javascript。

答案 2 :(得分:0)

你应该试试这个:

JavascriptExecutor jse = (JavascriptExecutor) driver;
jse.executeScript("scroll(0, 250)");

答案 3 :(得分: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();

}

这段代码有一些不赞成使用的部分,但尝试了所有其他方法,并不像这段代码那样高效。

它在几个项目中帮助了我。