我需要从左向右滑动一个元素。如何实现。
我尝试过:
new TouchAction(driver).press(214, 1219).moveTo(854,1199).release().perform();
但是没有运气。有人可以帮我从左向右滑动此按钮吗?
答案 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);
}