上下滑动
编写滑动方法,首先由屏幕的宽度和高度决定滑动的起点和终止点的坐标
int width = driver.manage().window().getSize().getWidth();int height = driver.manage().window().getSize().getHeight();
乡下进行滑动,使用触摸动作类
TouchAction touchAction = new TouchAction(driver);
设定起点
PointOption p1 = PointOption.point(width / 2, height / 4);
设定重点
PointOption p2 = PointOption.point(width / 2, height * 3 / 4);
滑动涉及到的另外一个条件—-触摸时间
duration对象,内置了多种单位用来设置持续的时间 import java.time.Duration;waitoption 所属 java_client.touch类下对象Duration duration = Duration.ofMillis(200);WaitOptions waitOptions = WaitOptions.waitOptions(duration);之后touchAction.类调用方法进行配置touchAction.press(p1).watiAction(watiOptions).move(p2).perform()
左右滑动
与上下滑动一样,只不过坐标的设置不同,整体流程依然为,
获得屏幕宽度,高度,设定起点终点,设定触摸持续时间
之后touchAction对象调用实现。
需要注意的是,touchAction封装成的都是一个方法,需要调用执行来进行测试
多点触控
multiTouchAction类可以魔衣用户的多点触控操作,主要包含有add(),和perform()方法,
可以结合touchAction模拟多根收支滑动效果,
本次以pinch,zoom作为例子,即缩小与放大
得到屏幕宽高
int width = driver.manage().window().getSize().getWidth();int height = driver.manage().window().getSize().getHeight();
分析收拾动作需要的做表单,单指起始位,二手纸起始位置
// 分析手势操作需要的坐标点 单手指起始位置PointOption pointB = PointOption.point(4 * width / 10, 4 * height / 10);PointOption pointA = PointOption.point(2 * width / 10, 2 * height / 10);// 二指手势位置PointOption pointC = PointOption.point(6 * width / 10, 6 * height / 10);PointOption pointD = PointOption.point(8 * width / 10, 8 * height / 10);
与上面滑动操作不同,这次需要实例化出来两个touchAction类,然后在实例化一个multiTouchAction类
// 实例化两个touchaction类TouchAction touch1 = new TouchAction(driver);TouchAction touch2 = new TouchAction(driver);// 通过touchaction类来设定两个action的逻辑touch1.press(pointB).moveTo(pointA).release();touch2.press(pointC).moveTo(pointD).release();// 让这两个手势同时生效,,实例化多点触控类MultiTouchAction multiTouchAction = new MultiTouchAction(driver);multiTouchAction.add(touch1);multiTouchAction.add(touch2);// 同时生效multiTouchAction.perform();
手势缩小操作
public void testPinch() throws InterruptedException {//手势放大的动作Thread.sleep(25000);//得到屏幕的宽度和高度int width = driver.manage().window().getSize().getWidth();int height = driver.manage().window().getSize().getHeight();// 定义触控点ABPointOption pointOptionA = PointOption.point(4 * width / 10, 4 * height / 10);PointOption pointOptionB = PointOption.point(2 * width / 10, 2 * height / 10);// 定义触控点CDPointOption pointOptionD = PointOption.point(6 * width / 10, 6 * height / 10);PointOption pointOptionC = PointOption.point(8 * width / 10, 8 * height / 10);// 实例两个action类TouchAction touchAction1 = new TouchAction(driver);TouchAction touchAction2 = new TouchAction(driver);// 设定两个touchactiontouchAction1.press(pointOptionA).moveTo(pointOptionB).release();touchAction2.press(pointOptionC).moveTo(pointOptionD).release();// 实例化多点触控类,之后将action加入,最后perform执行MultiTouchAction multiTouchAction = new MultiTouchAction(driver);multiTouchAction.add(touchAction1);multiTouchAction.add(touchAction2);multiTouchAction.perform();}
