如何针对最新版本的Appium在Android中执行向上和向下滚动

时间:2018-07-26 11:31:22

标签: android webdriver appium

我正在尝试上下滚动页面,有人可以帮我吗?我正在使用appium 1.6版。和Java客户端6.01对于最新版本,它不显示driver.scroll()方法或TouchAction action = new TouchAction(this.driver); action.press(startX,startY).moveTo(endX,endY).release().perform ();  它没有执行新闻

1 个答案:

答案 0 :(得分:0)

这些方法未经测试,因为我目前没有需要滚动的测试应用程序,但是我将它们组合在一起以供将来自己使用。对于每个滚动/滑动方向,我有两种方法-一种使用Appium,另一种使用javascript executor。我将仅显示下面的两个向下滚动例程,您应该能够仅通过这两个示例轻松确定如何编写其他方向。

首先是Appium版本:

public void scrollDown() throws Exception {

    //The viewing size of the device
    Dimension size = driver.manage().window().getSize();

    //Starting y location set to 80% of the height (near bottom)
    int starty = (int) (size.height * 0.80);
    //Ending y location set to 20% of the height (near top)
    int endy = (int) (size.height * 0.20);
    //x position set to mid-screen horizontally
    int startx = size.width / 2;

    new TouchActions(driver)
            .down(startx, starty)
            .move(startx, endy)
            .release()
            .build()
            .perform();

}

现在对应的javascript版本:

public void jsScrollDown() throws Exception {

    JavascriptExecutor js = (JavascriptExecutor) driver;
    HashMap<String, String> scrollObject = new HashMap<String, String>();
    scrollObject.put("direction", "down");
    js.executeScript("mobile: scroll", scrollObject);

}

请记住,这些都没有经过测试,但是我使用的是从Appium网站本身收集的信息,因此它们都应该起作用。