如何实现连续向左滑动
解决办法:循环滑动即可
@Test
public void test() throws InterruptedException{
Thread.sleep(3000);
//循环滑动
for(int i=0;i<=2;i++){
swipeLeft();}
}
/**
* 向左滑动(y轴不变)
* @throws InterruptedException
*/
public void swipeLeft() throws InterruptedException{
int height = androidDriver.manage().window().getSize().getHeight();
int width = androidDriver.manage().window().getSize().getWidth();
//坐标是自己定义的,设置原则:保证y轴不变,x轴终止endx小于起始startx且可以滑动过去即切换到下一页即可
//可以手动向左画滑动一下->鼠标向左滑动哪个位置是可以滑动成功的,然后就可以估计这个坐标点大概是多少即可
//滑动的效果->滑动的距离+滑动时间
//滑动时间越短->越能看清滑动的效果
//起始点:
int startx=width*3/4;
int starty=height/2;
int endx=width/4;
int endy=height/2;
int duration = 500;
mySwipe(startx, starty, endx, endy, duration);
}
/**
* 自定义滑动方法
* @throws InterruptedException
*/
public void mySwipe(int startx, int starty, int endx, int endy, int duration) throws InterruptedException {
/*
* java-client4.1.2版本滑动的源代码, TouchAction touchAction = new
* TouchAction(this); touchAction.press(startx,
* starty).waitAction(duration).moveTo(endx, endy).release();
* touchAction.perform();
*/
// 1.实例化触摸动作对象
TouchAction touchAction = new TouchAction(androidDriver);
// 2.将原始坐标转化成PointOption类型(java client高版本不能直接传坐标值)
PointOption startPoint = PointOption.point(startx, starty);
PointOption endPoint = PointOption.point(endx, endy);
// 3.把原始时间转换成WaitOptions类型的(原始时间是毫秒,所以调用ofMillis()
Duration duration2 = Duration.ofMillis(duration);
WaitOptions waitOptions = WaitOptions.waitOptions(duration2);
touchAction.press(startPoint).waitAction(waitOptions).moveTo(endPoint).release();
// 5.让滑动生效
touchAction.perform();
//循环滑动
// for(int i=0;i<=2;i++){
// // 6.配置滑动的动作
// touchAction.press(startPoint).waitAction(waitOptions).moveTo(endPoint).release();
// // 7.让滑动生效
// touchAction.perform();
// //这里加等待的目的->为了看效果明显一点,可以不用加
// //Thread.sleep(2000);;
// }
}
如上图代码:循环可以加在方法上-》调三次方法
也可以加在滑动动作上如下面代码
for(int i=0;i<=2;i++){
// 4.配置滑动的动作
touchAction.press(startPoint).waitAction(waitOptions).moveTo(endPoint).release();
// 5.让滑动生效
touchAction.perform();
//这里加等待的目的->为了看效果明显一点,可以不用加
//Thread.sleep(2000);;
}
注意:
(1)代码执行如果发现,app滑动页面切换不成功:
1)可能是滑动的距离太短
- 可能滑动的时间太短了
(2)循环滑动最好不要加在方法体里面-》因为:滑动的次数不一定是3次,那么方法就不通用了,以后要改方法体
所以一般加方法上-》可以理解为,写好的方法就是你的api,供别人调用的api-》调用者随便调用几次
网友评论