如何使用appium驱动程序从上到下滚动Android应用程序页面?

时间:2015-06-16 12:35:25

标签: java selenium appium gestures

  1. 我想从上到下滚动Android移动应用页面。

  2. 我尝试使用以下定义的代码进行滚动,并使用文本单击特定的Web元素。它工作正常。

  3.  // method 1
        driver.scrollTo("R");
    
        // method 2
        driver.ScrollToExact("Top");
    
    1. 但我需要从上到下滚动整篇文章页面,而不使用上面的scroll()方法。我尝试使用以下编码,但滚动操作对我来说并不适合。
    2.   

      //滚动到页面底部

      ((JavascriptExecutor) driver) .executeScript("window.scrollTo(0,
      document.body.scrollHeight)"); 
      
      1. 如何使用appium驱动程序从上到下滚动Android应用程序页面?

5 个答案:

答案 0 :(得分:1)

在这里,您需要每次在页面底部显示的循环中使用text进行检查。如果找到的文字比打破循环。

Dimension screenSize = driver.manage().window().getSize();
int startx = screenSize.getWidth() / 2;
int endx = startx;
int starty = (int) (screenSize.getHeight() * 0.70);
int endy = (int) (screenSize.getHeight() * 0.20);
AndroidDriver androidDriver = (AndroidDriver) driver; // WebDriver to AndroidDriver
while(true) {
        // code to check with a text which is appears on the bottom of the page 
        //break;
        scroll(driver, startx, starty, endx, endy, 500);
        androidDriver.swipe(startX, startY, endX, endY, time);
}

答案 1 :(得分:0)

您可以使用in循环:

page.swipe(SwipeElementDirection.UP, 400)

答案 2 :(得分:0)

使用:

driver.scrollTo("text");

其中text是按钮的名称(您可以在UIAutomatorviewer中查看文本)

答案 3 :(得分:0)

Step 1
public boolean isElementFound(String zoneName, String text, int index) {
        try{
            //text=text.concat("["+index+"]");
            //System.out.println(text);
            WebElement webElement = appiumDriver.findElement(By.xpath(text));
            System.out.println("isElementFound : true :"+text + "true");
            //ReportAppium.getSnapShot(appiumDriver);
        }catch(NoSuchElementException e){
            System.out.println("isElementFound : false :"+text);
            //ReportAppium.getSnapShot(appiumDriver, "isElementFound- "+text + "false");
            return false;
        }
        return true;
    }
Step 2

while(isElementFound(element)==false)
{
     public void swipe(int startx, int starty, int endx,int endy,int duration)
    {
        TouchAction touchAction = new TouchAction(appiumDriver);
        System.out.println(startx+" "+starty);
        System.out.println("Entering swipe");

            System.out.println("Swipe from "+startx +" " +starty +"to" +endx +" " +endy );
            touchAction.press(startx, starty).waitAction(duration).moveTo(endx,endy).release().perform();

    }

}

答案 4 :(得分:-1)

使用

driver.scrollTo("Text");

注意:您可以从UI Automator Viewer Tool的节点详细信息屏幕中找到文本内容