上下滑动

编写滑动方法,首先由屏幕的宽度和高度决定滑动的起点和终止点的坐标

  1. int width = driver.manage().window().getSize().getWidth();
  2. int height = driver.manage().window().getSize().getHeight();

乡下进行滑动,使用触摸动作类

  1. TouchAction touchAction = new TouchAction(driver);

设定起点

  1. PointOption p1 = PointOption.point(width / 2, height / 4);

设定重点

  1. PointOption p2 = PointOption.point(width / 2, height * 3 / 4);

滑动涉及到的另外一个条件—-触摸时间

  1. duration对象,内置了多种单位用来设置持续的时间 import java.time.Duration;
  2. waitoption 所属 java_client.touch类下对象
  3. Duration duration = Duration.ofMillis(200);
  4. WaitOptions waitOptions = WaitOptions.waitOptions(duration);
  5. 之后touchAction.类调用方法进行配置
  6. touchAction.press(p1).watiAction(watiOptions).move(p2).perform()

左右滑动

与上下滑动一样,只不过坐标的设置不同,整体流程依然为,
获得屏幕宽度,高度,设定起点终点,设定触摸持续时间
之后touchAction对象调用实现。

需要注意的是,touchAction封装成的都是一个方法,需要调用执行来进行测试

多点触控

multiTouchAction类可以魔衣用户的多点触控操作,主要包含有add(),和perform()方法,
可以结合touchAction模拟多根收支滑动效果,
本次以pinch,zoom作为例子,即缩小与放大

得到屏幕宽高

  1. int width = driver.manage().window().getSize().getWidth();
  2. int height = driver.manage().window().getSize().getHeight();

分析收拾动作需要的做表单,单指起始位,二手纸起始位置

  1. // 分析手势操作需要的坐标点 单手指起始位置
  2. PointOption pointB = PointOption.point(4 * width / 10, 4 * height / 10);
  3. PointOption pointA = PointOption.point(2 * width / 10, 2 * height / 10);
  4. // 二指手势位置
  5. PointOption pointC = PointOption.point(6 * width / 10, 6 * height / 10);
  6. PointOption pointD = PointOption.point(8 * width / 10, 8 * height / 10);

与上面滑动操作不同,这次需要实例化出来两个touchAction类,然后在实例化一个multiTouchAction类

  1. // 实例化两个touchaction类
  2. TouchAction touch1 = new TouchAction(driver);
  3. TouchAction touch2 = new TouchAction(driver);
  4. // 通过touchaction类来设定两个action的逻辑
  5. touch1.press(pointB).moveTo(pointA).release();
  6. touch2.press(pointC).moveTo(pointD).release();
  7. // 让这两个手势同时生效,,实例化多点触控类
  8. MultiTouchAction multiTouchAction = new MultiTouchAction(driver);
  9. multiTouchAction.add(touch1);
  10. multiTouchAction.add(touch2);
  11. // 同时生效
  12. multiTouchAction.perform();

手势缩小操作

  1. public void testPinch() throws InterruptedException {
  2. //手势放大的动作
  3. Thread.sleep(25000);
  4. //得到屏幕的宽度和高度
  5. int width = driver.manage().window().getSize().getWidth();
  6. int height = driver.manage().window().getSize().getHeight();
  7. // 定义触控点AB
  8. PointOption pointOptionA = PointOption.point(4 * width / 10, 4 * height / 10);
  9. PointOption pointOptionB = PointOption.point(2 * width / 10, 2 * height / 10);
  10. // 定义触控点CD
  11. PointOption pointOptionD = PointOption.point(6 * width / 10, 6 * height / 10);
  12. PointOption pointOptionC = PointOption.point(8 * width / 10, 8 * height / 10);
  13. // 实例两个action类
  14. TouchAction touchAction1 = new TouchAction(driver);
  15. TouchAction touchAction2 = new TouchAction(driver);
  16. // 设定两个touchaction
  17. touchAction1.press(pointOptionA).moveTo(pointOptionB).release();
  18. touchAction2.press(pointOptionC).moveTo(pointOptionD).release();
  19. // 实例化多点触控类,之后将action加入,最后perform执行
  20. MultiTouchAction multiTouchAction = new MultiTouchAction(driver);
  21. multiTouchAction.add(touchAction1);
  22. multiTouchAction.add(touchAction2);
  23. multiTouchAction.perform();
  24. }