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文件

  

  

       

移动自动化-swipe、scroll、drag、高级手势等的更多相关文章

  1. Appium(九):Appium API(三) 滑动和拖拽、高级手势、手机操作

    1. 滑动和拖拽 我们在做自动化测试的时候,有些按钮是需要滑动几次屏幕后才会出现,此时,我们需要使用代码来模拟手指的滑动,也就是接下来要学的滑动和拖拽了. 1.1 swipe滑动事件 从一个坐标位置滑 ...

  2. iOS开发UI高级手势识别器

    ####手势识别器 UIGestureRecognizer类 ·UITapGestureRecognizer(轻击) ·UIPinchGestureRecognizer(捏合) ·UIPanGestu ...

  3. Android: 触屏fling/scroll/drag的区别及其详细过程

    Google了一下,终于搞清了touch screen下的几种操作模式(对应的是事件). 对于一个view, 常用的操作有点击(click)和长按(long press)二种.实际上,这些操作类型是A ...

  4. 多测师全方位面试题腾讯 _自动化面试题_高级讲师肖sir

    作答注意:候选人可以两题都做,也可以两题任选一题做即可. 笔试题一:1.查询 https://www.newsmth.net/nForum/#!board/PieLove2.获取发贴时间是2020年8 ...

  5. Python自动化运维之高级函数

    本帖最后由 陈泽 于 2018-6-20 17:31 编辑 一.协程 1.1协程的概念 协程,又称微线程,纤程.英文名Coroutine.一句话说明什么是线程:协程是一种用户态的轻量级线程.(其实并没 ...

  6. APP自动化 -- swipe(滑动屏幕)

  7. 多测师讲解 _接口自动化框架设计_高级讲师肖sir

    背景:因为把传入接口参数.组建测试用例.执行测试用例和发送报告,都放入一个.py文件对于接口的使用非常不灵活就需要数据和接口业务进行分离让代码之间的 耦合性降低.和实现接口的分层管理,所以需要对代码进 ...

  8. 多测师讲解自动化 _rf 变量_高级讲师肖sir

    rf变量 log 打印全局变量 列表变量: 字典变量: 查看当前工程下的变量 紫色表示变量名有误 设置全局变量 设置列表变量 设置字段变量 关键字书写格式问题

  9. appium移动自动化详解

    1移动自动化简介 移动自动化就是通过代码来控制手机,模拟人的动作,对手机进行一些点击,输入等操作,那python代码如何能控制到手机呢?目前的思路应该是python代码->Appium-pyth ...

  10. javascript 常用手势 分析

    javascript 常用手势, 个人觉得有3个 tap,swipe(swipeLeft,swipeRight,swipeTop,swipeRight),hold tap 是轻击 判断的原则是,在to ...

随机推荐

  1. 创建型模式 - 原型模式Prototype

    孩子生来没娘的NT审核机制,又开始说我涉及到广告了,我涉及到什么广告了?我接着发. 学习而来,代码是自己敲的.也有些自己的理解在里边,有问题希望大家指出. 所属:创建型模式  原型模式 一般会和 工场 ...

  2. SOFAJRaft源码阅读(伍)-初识RheaKV

    SOFAJRaft的SOFAJRaft-RheaKV 是基于 SOFAJRaft 和 RocksDB 实现的嵌入式.分布式.高可用.强一致的 KV 存储类库.SOFAJRaft-RheaKV 集群主要 ...

  3. 【学习笔记】XR872 GUI Littlevgl 8.0 移植(文件系统)

    不得不提 在移植的过程中,发现 LVGL 的文件操作接口并不十分完善,在我看来, LVGL 的文件操作接口,应该更多的是为了 LVGL 内部接口方便读取资源文件而设立的,例如读取图像文件,加载字库文件 ...

  4. 虚拟DOM中给同一层级的元素设置固定且唯一的key为什么能提高性能

    一.文字 key让React知道,当前新生成的React元素中的元素,是否能在之前生成的React元素中找到对应的.如果有,那么直接拿过来用就行了.假设列表头部插入一项,通过比对,React知道除了头 ...

  5. DBSCAN学习笔记

    基本概念 核心点:若某个点的密度达到算法设定的阈值,即ε-邻域内点的数量(包括自己)不小于minPts,则该点为核心点. 边界点:在ε-邻域内点的数量小于minPts,但是落在核心点邻域内的点. 噪声 ...

  6. Nginx07 keepalived

    https://hashnode.blog.csdn.net/article/details/124532338 1 简介 Keepalived软件起初是专为LVS负载均衡软件设计的,用来管理并监控L ...

  7. websocket-sharp 实现websocket

    第一步,使用VS创建一个应用程序 第二步,添加引用 websocket-sharp DLL文件,或者NuGet程序包中添加 第三部,创建Laputa 类 using WebSocketSharp; u ...

  8. 视觉SLAM:VIO的误差和误差雅可比矩阵

    1.两个相机之间的非线性优化 观测相机方程关于相机位姿与特征点的雅可比矩阵: 1.1 位姿: 1.2 3D特征点 fx,fy,fz为相机内参 X',Y',Z'为3D点在相机坐标系下的坐标 该误差是观测 ...

  9. C++练习3 定义带默认值的参数

    通过void func 定义函数的默认值和其可以容纳多少个实参 1 #include <iostream> 2 using namespace std; 3 void func(int a ...

  10. Mybatis的常用配置-多表关联查询

    Mapper.xml常用配置 全局配置文件(数据库,事物管理,Mapper的注册.打印文件SQL.慢性加载.二级缓存) Mapper配置文件 (定义自定义接口的具体方案;SQL.数据库.数据库与POJ ...