如何滑动嵌套在SwipeRefreshLayout中的ListView

时间:2018-03-14 17:31:52

标签: appium appium-android

我在ListView内嵌套SwipeRefreshLayout

我想从ListView中的任何位置向下滑动到布局底部的元素,以便发生滑动事件,并观察到小刷新图标。

enter image description here

我试过这个

new TouchAction(mUser.mDriver)
    .longPress(listView)
    .moveTo(bottomElement)
    .release()
    .perform();

和这个

new TouchAction(mUser.mDriver)
    .longPress(swipeView)
    .moveTo(bottomElement)
    .release()
    .perform();

似乎都不起作用。

如何使用Java客户端使用appium滑动列表视图?

1 个答案:

答案 0 :(得分:0)

这似乎有效

WebElement swipeView = myDriver.findElementById(myId);

new TouchAction(mUser.mDriver)
       .press(getXMiddle(swipeView), getYUp(swipeView))
       .moveTo(getXMiddle(swipeView), getYDown(swipeView))
       .release()
       .perform();

和辅助方法

// x locations

public int getXLeft(WebElement el)
{
  return el.getLocation().getX();
}

public int getXRight(WebElement el)
{
  return getXLeft(el) + el.getSize().getWidth();
}

public int getXMiddle(WebElement el)
{
  return (getXRight(el) + getXLeft(el)) / 2;
}

// y locations

public int getYUp(WebElement el)
{
  return el.getLocation().getY();
}

public int getYDown(WebElement el)
{
  return getYUp(el) + el.getSize().getHeight();
}

public int getYMiddle(WebElement el)
{
  return (getYUp(el) + getYDown(el)) / 2;
}