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. redis 6种过期策略的具体方式

    redis 中的默认的过期策略是volatile-lru .设置方式 config set maxmemory-policy volatile-lru maxmemory-policy 六种方式 vo ...

  2. javaWeb03-请求转发和请求重定向【包含浏览器与响应编码格式不一致的解决方法】

    本文主要讲述javaWeb的请求转发和请求重定向的区别 一. 请求转发 1. 图解 2. 代码示例 Servlet1的代码示例如下 public class Servlet1 extends Http ...

  3. Vue17 手机表单数据

    1)v-model.trim trim修饰符是去掉前后空格 2)type="number" v-model.number type="number":只能输入数 ...

  4. 亚马孙机器可能出现权限问题导致ssh无法秘钥登录的情况

    一般都是amazon会遇到,目前ali的机器没遇到过 情况是新机器,然后ssh脚本创建目录和用户和拷贝秘钥等等,后面用该新用户的秘钥登录发现一直无法登录. 把sshd的log改为debug,查看日志得 ...

  5. 【Windows】ip地址修改器v5.0.5.4 修改ip更简便

    ip地址修改器v5.0.5.4 修改ip更简便 IP地址修改器,一款能够快速的切换IP地址,在几个不同的固定IP之间进行切换,手动输太麻烦,所以可以用到这款IP地址修改器! 下载 ip地址修改器v5. ...

  6. 读写wav格式文件

    读写wav格式文件 本文所有相关代码(包括未来的)均可在该代码库找到 https://gitcode.net/PeaZomboss/learnaudios 本文代码在MinGW-w64 gcc/g++ ...

  7. vue页面加载闪烁的问题以及解决方案

    一.原因: 问题:当我们打开Vue页面的时候,如果弱网环境,会出现一个闪烁的效果下图:加载闪烁问题效果 原因:因为在浏览器中先执行html代码,先渲染Dom,然后再执行JavaScript代码,Vue ...

  8. Redis 源码解读之 Rehash 的调用时机

    Redis 源码解读之 Rehash 的调用时机 背景和问题 本文想要解决的问题 什么时机触发 Rehash 操作? 什么时机实际执行 Rehash 函数? 结论 什么时机触发 Rehash 操作? ...

  9. C# Socket 通信时,怎样判断 Socket 双方是否断开连接

    参考内容: C#socket通信时,怎样判断socket双方是否断开连接 C#之Socket断线和重连 Socket.Poll 方法 Socket.Blocking 属性 最近需要写个网口通信的上位机 ...

  10. JZOJ 3213. 【SDOI2013】直径

    题目 思路 树的直径很好求,两遍 \(dfs\),记下两个端点 然后很显然所有直径经过的边必然在我们求出的这条直线上 那么我们只要判断一下一条直径上的边是不是答案 假设当前边为 \(i\) 那么把 \ ...