Time will tell.
滑动在实际使用过程中,用户可能要进行一些多点连续滑动操作。如九宫格滑动操作,连续拖动图片移动等场景。那么这种高级绚丽的溜冰滑动在 Appium 中该如何模拟这类操作呢?下面一一道来。
1、TouchAction
Touch Action 包含一些列操作,比如按压、长按、点击、移动、暂停。由着些不同操作可以组成一套动作。使用 TochAction 需要先导入对应的模块。
from appium.webdriver.common.touch_action import TouchAction
按压方法:
press()
开始按压一个元素或坐标点(x,y)。通过手指按压手机屏幕的某个位置。 press
也可以接收屏幕的坐标(x,y)。
press(self, el=None, x=None, y=None)
TouchAction(driver).press(x=0,y=308)
长按方法:
longPress()
开始按压一个元素或坐标点(x,y)。 相比press()
方法,longPress()
多了一个入参,既然长按,得有按的时间吧。duration
以毫秒为单位。1000表示按一秒钟。其用法与press()
方法相同。
long_press(self, el=None, x=None, y=None, duration=1000)
点击方法:
tap()
对一个元素或控件执行点击操作。用法参考press()
。
tap(self, element=None, x=None, y=None, count=1)
移动方法:
move_to()
将指针从上一个点移动到指定的元素或点。
move_to(self, el=None, x=None, y=None)
注意:移动到目位置有时是算绝对坐标点,有时是基于前面一个坐标点的偏移量,这个要结合具体 App 来实践。
暂停方法:
Wait()
,暂停脚本的执行,单位为毫秒。
wait(self, ms=0)
释放方法:
release()
结束的行动取消屏幕上的指针。
release(self)
执行方法:
perform()
执行的操作发送到服务器的命令操作。
perform(self)
2、TouchAction 实战
九宫格是一种比较常见的图案加密方式,目前很多 App 都支持设置图案锁, Android 原生系统也支持设九宫格图案锁屏。那么我们该如何使用 Appium 进行滑动操作呢?
测试场景
安装启动随手记 App 启动 App 后在密码设置选项中开启手机密码并滑动九宫格设置如下 “Z” 字形的图形密码。
测试环境
1.Windows 10版本 64位系统
2.jdk版本:“1.8.0_181”
3.appium版本:1.4.16
4.selenium:3.141.0
-
安装selenium:
-
输入指令pip install selenium
-
验证安装成功:pip show selenium
5.测试设备:Android 5.1.1 (不能低于5.0版本)
6.Python:3.7.2 ,命令:python -V ,回车即可。
7.测试App:随手记 Android app V9.7.1.5
想法与思路:
- 安装启动随手记APP
- 代码实现点击“下一步”,向左滑动首页引导页面
- 点击“开始随手记”进入首页页面
- 点击“设置”按钮,向上滑动,找到“高级”按钮,点击进入
-点击“手势密码”,开始设置手势密码(高级滑动)
代码实现:
(1)安装启动随手记
(2)代码实现点击 “下一步” ,向左滑动首页引导页面
(3)点击 “开始随手记” 进入首页页面
(4)点击“设置”按钮,向上滑动,找到 “高级” 按钮,点击进入
(5)点击 “手势密码”,开始设置手势密码,进行解锁(高级滑动)
这个地方move_to
到了按下的这个坐标点,是因为不这样的话实际结果忽略掉了第一个按下的点。release()
释放,perform()
执行。
代码运行结果: