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. 【随笔记】T507 ADC SGM58031 16BIT 4Channel 调试记录

    文章介绍 本文主要描述在 T507 Android 10 Linux 4.9 平台下,调试 SGM58031 芯片的记录,实现单芯片实时采集外部四通道的电压数值. 芯片介绍 SGM58031 是一款低 ...

  2. MyBatis-Plus生成的id传给前端最后两位变为0

    问题描述: 使用MybatisPlus-Plus插入一条数据,生成的id长这样 1621328019543105539 但是在前端显示的时候id却是这样 1621328019543105500 所以导 ...

  3. redis使用bitmap实现签到

    import redis import datetime import calendar ​ r = redis.Redis( host="127.0.0.1", port=637 ...

  4. CesiumJS PrimitiveAPI 高级着色入门 - 从参数化几何与 Fabric 材质到着色器 - 上篇

    目录 0. 基础 0.1. 坐标系基础 0.2. 合并批次 1. 参数化几何 1.1. 几何类清单 1.2. 举例 1.3. 纯手搓几何 1.4. *子线程异步生成几何 2. 使用材质 2.1. 外观 ...

  5. unity 实现自定义class深度拷贝 deep copy 深度复制 引用类型复制

    气死我了,搜半天没有,全让序列化再反序列化,又不方便又不美观.结果自己试着一写就通,两行完事. 首先先安装Newtonsoft.Json 包,这个很常用也很简单,随便搜一下安上就行,早晚得学. 然后两 ...

  6. 从 Newtonsoft.Json 迁移到 System.Text.Json

    一.写在前面 System.Text.Json 是 .NET Core 3 及以上版本内置的 Json 序列化组件,刚推出的时候经常看到踩各种坑的吐槽,现在经过几个版本的迭代优化,提升了易用性,修复了 ...

  7. Android 初代 K-V 存储框架 SharedPreferences,旧时代的余晖?

    本文已收录到  AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 提问. 前言 大家好,我是小彭. SharedPreferences 是 Android 平台上轻量级的 K-V ...

  8. 挖矿僵尸网络蠕虫病毒kdevtmpfsi处理过程

    背景: pgsql连接时候报错org.postgresql.util.PSQLException: FATAL: sorry, too many clients already, 意思是client已 ...

  9. 跳板攻击之:EarthWorm代理转发

    跳板攻击之:EarthWorm代理转发 目录 跳板攻击之:EarthWorm代理转发 1 EarthWorm官方介绍 2 官方使用方法: 2.1 环境 2.2 正向 SOCKS v5 服务器 2.3 ...

  10. 学习ASP.NET Core Blazor编程系列二十七——JWT登录(1)

    学习ASP.NET Core Blazor编程系列文章之目录 学习ASP.NET Core Blazor编程系列一--综述 学习ASP.NET Core Blazor编程系列二--第一个Blazor应 ...