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

手势密码在很多手机应用都会运到,手势密码都要求至少连接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毫秒。

你可能感兴趣的:(自动化测试,Android)