如何通过Hypium脚本实现多端连续滑动
====================

#### 问题现象

如何利用Hypium实现UI自动化脚本，实现多端连续滑动，类似解锁图形密码操作？

#### 背景知识

[应用UI测试（基于Python）](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/hypium-python-guidelines)：DevEco Testing Hypium(以下简称Hypium)是HarmonyOS平台的UI自动化测试框架，支持开发者使用python语言为应用编写UI自动化测试脚本，主要包含以下特性：

*   Hypium提供了控件、图像、比例坐标等多种控件定位能力，支持多窗口操作以及触摸屏、鼠标、键盘等多种模拟输入功能，支持多设备并行操作，能够覆盖各类场景和多种形态设备上的自动化用例编写需求。
*   Hypium包含配套用例编写辅助插件，支持控件查看、投屏操作等多种用例开发辅助功能，提升用例开发体验和效率。
*   Hypium能够为执行的用例生成详细的用例执行报告，并且自动记录设备日志以及执行步骤截图，为开发者和测试人员提供高效和专业的测试用例执行和结果分析体验。

#### 解决方案

通过手势对象的move\_to方法进行移动实现连续滑动效果。

from devicetest.core.test\_case import TestCase
from hypium import Gesture, Point, UiDriver
class TC\_001(TestCase):
    def \_\_init\_\_(self, controllers):
        self.TAG = self.\_\_class\_\_.\_\_name\_\_
        super().\_\_init\_\_(self.TAG, controllers)
        self.driver = UiDriver(self.device1)
    def setup(self):
      _  # 创建手势对象_
        gesture = Gesture()
       _ # 起始位置, 长按2秒_
        gesture.start(Point(360, 500).to\_tuple(), 2)
      _  # 停留2秒_
        gesture.pause(2)
    _    # 移动到(100, 500)的位置_
        gesture.move\_to(Point(100, 500).to\_tuple())
     _   # 停留2秒结束_
        gesture.pause(2)
     _   # 移动到(300, 500)的位置_
        gesture.move\_to(Point(300, 500).to\_tuple())
     _   # 停留2秒结束_
        gesture.pause(2)
       _ # 执行gesture对象描述的操作_
        self.driver.inject\_gesture(gesture)