Swipe funtion in Andriod for Java-Client-5.0.3 is not working

你说的曾经没有我的故事 提交于 2019-12-25 02:23:08

问题


I was using below code for page swiping in Android Mobile Automation Testing, the swipe function is not supported. It gives the error:

The method swipe(int, int, int, int, int) is undefined for the type AppiumDriver

Below is the code

public static void Swipe(String Direction) throws Exception,IOException{
    if(Direction.equalsIgnoreCase("Right to Left")){
        AgenceGS_Framwork.driver.context("NATIVE_APP"); 
        Dimension size = AgenceGS_Framwork.driver.manage().window().getSize(); 
        int startx = (int) (size.height * 0.8);
        int endx = (int) (size.height * 0.20); 
        int starty = size.width / 2; 
        //Mobile_Framwork.driver.swipe(startx, starty, endx, starty, 1000);
        AgenceGS_Framwork.driver.swipe(endx, starty, startx, starty, 2000);
        AgenceGS_Framwork.switchWebview("android.webkit.WebView");
    }
    if(Direction.equalsIgnoreCase("Left to Right")){ 
        AgenceGS_Framwork.driver.context("NATIVE_APP"); 
        Dimension size = AgenceGS_Framwork.driver.manage().window().getSize(); 
        int endx = (int) (size.width * 0.8);
        System.out.println("start width");
        int startx = (int) (size.width * 0.20); 
        System.out.println("start width");
        int starty = size.height / 2; 
        AgenceGS_Framwork.driver.swipe(startx, starty, endx, starty, 1000);
        AgenceGS_Framwork.switchWebview("android.webkit.WebView");
    }
    if(Direction.equalsIgnoreCase("Coordinate Scroll")){ 
        AgenceGS_Framwork.driver.context("NATIVE_APP"); 
        TouchAction touch=new TouchAction(AgenceGS_Framwork.driver);
        touch.longPress(664,600).moveTo(664, 100).release().perform();
        AgenceGS_Framwork.switchWebview("android.webkit.WebView");
    }
}

回答1:


Check it out, it will help you for page swiping (for Java client 5.0.3), it's working perfectly for me.

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();
    }


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

Call them by:

For scroll up: swipeVertical((AppiumDriver)driver,0.9,0.1,0.5,3000);

For scroll down: swipeVertical((AppiumDriver)driver,0.1,0.9,0.5,3000);

For right to left: swipeHorizontal((AppiumDriver) driver,0.9,0.01,0.5,3000);

For left to right: swipeHorizontal((AppiumDriver) driver,0.01,0.9,0.5,3000);



来源:https://stackoverflow.com/questions/49233444/swipe-funtion-in-andriod-for-java-client-5-0-3-is-not-working

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!