解决Robotframework+Appium安卓自动化测试解锁手势密码操作

来源:互联网 发布:eclipse可视化编程 编辑:程序博客网 时间:2024/04/29 10:48

手势密码在很多手机应用都会运到,手势密码都要求至少连接4个点,但AppiumLibrary并没有提供对应的关键字,本人尝试连续使用Swipe关键字两次解决该问题,为什么要用两次呢?因为Swipe的参数只是起点和终点,如果直接给出手势密码的起点和终点,则会忽略中间的点。


AppiumLibrary它是开源的,就直接去修改其源代码。
于是,去到AppiumLibrary安装的文件夹,默认安装路径为:C:\Python27\Lib\site-packages\AppiumLibrary\keywords),再到keywords目录中找到_touch.py文件,就是它了。
给这个文件的类_TouchKeywords加上一个方法gesture,具体代码如下:

def kxx(self, platform):        driver = self._current_application()               action = TouchAction(driver)                  if platform == "Android":            action.press(x=160, y=429).wait(ms=500).move_to(x=0, y=400).wait(ms=500).move_to(x=400, y=0).wait(ms=500).release()          else:            action.press(x=50, y=100).wait(ms=500).move_to(x=150, y=0).wait(ms=500).move_to(x=0, y=100).wait(ms=500).release()          action.perform()

1.press方法中的坐标为绝对坐标,move_to方法中的坐标都是相对坐标,具体来说第一个move_to中的坐标相对于press方法中的坐标,第二个move_to方法中的坐标相对于第一个move_to方法中的坐标。
2.wait是必须的:开始我没有用wait,结果效果是划动太快,直接从第一个点到了最后一个点,略过了中间的点,加上wait之后就正常了。这里ms表示为毫秒,ms=500就是等待500毫秒。

1 0
原创粉丝点击