如何在Appium Android中水平滑动

时间:2019-03-15 13:10:20

标签: java android appium

我需要从左向右滑动一个元素。如何实现。

Element screenshot

我尝试过:

new TouchAction(driver).press(214, 1219).moveTo(854,1199).release().perform();

但是没有运气。有人可以帮我从左向右滑动此按钮吗?

1 个答案:

答案 0 :(得分:1)

最好不要对x和y位置进行硬编码,但是如果要水平滑动,则y点应该相同。在您的示例中,它们相距20像素。但是,它可能不会影响结果。

这是我的滑动/滚动方法:

/**
 * This method scrolls based upon the passed parameters
 * @author Bill Hileman
 * @param int startx - the starting x position
 * @param int starty - the starting y position
 * @param int endx - the ending x position
 * @param int endy - the ending y position
 */
@SuppressWarnings("rawtypes")
public void scroll(int startx, int starty, int endx, int endy) {

    TouchAction touchAction = new TouchAction(driver);

    touchAction.longPress(PointOption.point(startx, starty))
               .waitAction(WaitOptions.waitOptions(ofSeconds(1)))
               .moveTo(PointOption.point(endx, endy))
               .release()
               .perform();

}

现在,我有了其他使用屏幕坐标来确定x和y应该是什么的方法,然后调用scroll方法,如下所示:

/**
 * This method does a swipe right
 * @author Bill Hileman
 */
public void swipeRight() {

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

    //Starting x location set to 5% of the width (near left)
    int startx = (int) (size.width * 0.05);
    //Ending x location set to 95% of the width (near right)
    int endx = (int) (size.width * 0.95);
    //y position set to mid-screen vertically
    int starty = size.height / 2;

    scroll(startx, starty, endx, starty);

}