zoukankan      html  css  js  c++  java
  • 移动自动化-swipe、scroll、drag、高级手势等

    swipe 滑动事件

      使用方法:driver.swipe(strat_x,start_y,end_x,end_y)

      swipe通过driver使用

      传入起始的位置x和y,和结束的位置x和y

      时间参数,越长滑动的越精准

      默认的时间,大约是0.8s

      获取当前的时间戳time.time()

      时间戳的含义是 从1970年到现在过了多少秒

       

    scroll滑动事件

      从一个元素滑动到另一元素,直到页面自动停止

      方法:scroll(origin_el,destination_el)

      和swipe相比 都存在一定的“惯性”

    drag拖拽事件

      从一个元素滑动到另一个元素,第二个元素替代第一个元素原本屏幕上的位置

      方法:drag_and_drop(origin_el,destination_el)

      scroll和drag的区别:drag没有“惯性”,都是使用元素进行传参

      和swipe相比,drag传元素,swipe传坐标,当swipe的时间足够长的时候,和drag效果相同

      

      ps:

      1、find_element如果找到了某个元素 会将具体位置缓存在系统中,只要不重新获取,就算已经跑出了屏幕外,也会认为元素在之前缓存的位置

      2、只要某个元素在屏幕中出现了一部分,find_element也会正常找到

      

    高级手势TouchAction

      是appiumDriver的辅助类,主要针对手势操作、比如滑动、长按、拖动等

      原理是将一系列的动作放在一个链条中发送到服务器,服务器接受到该链条后,解析各个动作,逐个执行

      1、手指轻敲操作

      模拟手指轻敲一下屏幕操作,方法:tap(element=None,x=None,y=None)

      方法:perform() #发送命令到服务器执行操作

      所有手势都要通过perform()执行

      

      2、手指按下和抬起操作

      方法:press(elment=None,x=None,y=None)

      方法:release() #结束动作,手指离开屏幕

      参数:1、element:被定位到的元素

         2、x:x轴的坐标

         3、y:y轴的坐标

       

      3、长按

      long_press

      

       4、手指移动操作

      模拟手机滑动操作,如解锁

      方法:move_to(element=None,x=None,y=None)

      参数:

        1、x:相对于前一个元素的x轴偏移量

        2、y:相对于前一个元素的y轴偏移量

       

      

       

       

       5、什么是链条

        一堆动作 通过 动作.动作.动作.perform 这一串动作就是链条

     

      6、获取手机时间

        方法:device_time

        代码实现:print(driver.driver_time)

      7、手机的高宽

      

      8、发送键到设备

       模拟系统键值的操作,比如操作home键,音量键,返回键等

      方法:keyevent(keycode,metastate=None)

      方法:press_keycode(keycode,metastate=None):

      参数:

        keycode 发送给设备的关键代码

        metastate 关于被发送的关键代码的元信息,一般为默认值

      代码实现:

          for i in range(3):

            driver.keyevent(24)

       9、操作手机通知栏

      打开手机的通知栏,可以获取通知栏的相关信息和元素操作

      方法:open_notifications()

      代码实现:driver.open_notifications()

      关闭导航栏,点击返回按钮

      

      10、获取手机当前网络

      方法:network_connection

      代码实现:print(driver.network_connection)

      

      

      

      

      11、手机截图

      代码实现:import os

           driver.get_screenshot_as_file(os.getcwd()+os.sep+'./screen.png')

      执行结果:当前目录下会生成screen.png文件

      

      

           

     

  • 相关阅读:
    min-max 容斥
    集训作业
    UOJ Test Round 3
    uoj Goodbye Dingyou
    Codeforces Round #516 (Div. 1) 题解
    Codeforces Round #517(Div. 1) 题解
    概率论(Ⅱ)
    Berlekamp-Massey算法学习笔记
    多项式取模优化线性递推总结
    [ZJOI2019]线段树
  • 原文地址:https://www.cnblogs.com/sasa-python/p/14024371.html
Copyright © 2011-2022 走看看