移动自动化-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文件

  

  

       

 

原文地址:https://www.cnblogs.com/sasa-python/p/14024371.html