• appium自动化之手势操作总结(附带手势解锁)


    说说常用appium做自动化经常会用到的手势操作。声明:所有的手势操作都会用到这个模块   from appium.webdriver.common.touch_action import TouchAction

    操作时都得传入driver对象,执行时都用上.perfrom()才能生效,使用move_to根据坐标移动手势,记得打开开发者模式里面的指针位置

    1:轻敲   tap,类似于click点击

    使用方法:可以传元素或者是坐标

    # todo 传元素点击轻敲

    TouchAction(driver).tap(more_button).perform()

    todo 传坐标点击

    TouchAction(driver).tap(x=680,y=1045).perform()

    2:按压   press   

    使用方法:可以传元素或者是坐标

    el = driver.find_element_by_xpath('//*[@text="开放源代码许可"]')

    # todo 按压5秒后释放

    TouchAction(driver).press(el).wait(5000).release().perform()

    3:长按   long_press

    使用方法:可以传元素或者是坐标

    # todo 长按6秒

    el = driver.find_element_by_xpath('//*[@text="WiredSSID"]')

    TouchAction(driver).long_press(el=el,duration=6000).perform()

    4:等待   wait

    使用方法:参考上面,传等待时间

    5:release   释放

    使用方法:参考上面,按压完成后就释放手指

    6:perfrom   执行

    使用方法:参考上面,任何手势操作都得用它才能执行

    7:move_to   移动

    使用方法:可以传元素或者是坐标,坐标根据x,y轴的位置移动,具体参考下面手势解锁demo

    # todo 实现滑动解锁的功能
    from appium import webdriver
    import time
    from appium.webdriver.common.touch_action import TouchAction
    
    desired_caps = {
        "platformName":"Android",
        "platformVersion":"5.1",
        "deviceName":"127.0.0.1:62001",
        "appPackage":"com.android.settings",
        "appActivity":".ChooseLockPattern"
                   }
    
    # 声明driver对象
    driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_caps)
    
    # todo 执行手势
    # todo 根据坐标移动手势,记得打开指针位置
    # todo 一边按压,一边移动距离
    TouchAction(driver).press(x=172,y=622).move_to(x=538,y=620).\
        move_to(x=905,y=625).move_to(x=537,y=976).move_to(x=176,y=1343).\
        move_to(x=537,y=1340).move_to(x=902,y=1343).perform()
    
    time.sleep(1)
    driver.quit()

    move_to用法图片:

    轻敲用法图片:

    长按用法图片:

    打开指针位置方便根据坐标定位:

  • 相关阅读:
    前端的推荐资源
    Python 学习日志(一)
    遇到的一些elasticsearch报错信息整理
    记hyper-v导致的privoxy error(fatal error: can't bind to 127.0.0.1:1081(error number:0)),附解决方法
    Java动态代理学习笔记
    spring依赖注入中p命名空间和c命名空间区别
    python "二维" 字典(字典嵌套)
    [剑指offer] 数组中的逆序对
    [剑指offer] 复杂链表的复制
    [剑指offer] 8-10做题笔记
  • 原文地址:https://www.cnblogs.com/xiamaojjie/p/11462199.html
Copyright © 2020-2023  润新知