移动自动化-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文件
移动自动化-swipe、scroll、drag、高级手势等的更多相关文章
- Appium(九):Appium API(三) 滑动和拖拽、高级手势、手机操作
1. 滑动和拖拽 我们在做自动化测试的时候,有些按钮是需要滑动几次屏幕后才会出现,此时,我们需要使用代码来模拟手指的滑动,也就是接下来要学的滑动和拖拽了. 1.1 swipe滑动事件 从一个坐标位置滑 ...
- iOS开发UI高级手势识别器
####手势识别器 UIGestureRecognizer类 ·UITapGestureRecognizer(轻击) ·UIPinchGestureRecognizer(捏合) ·UIPanGestu ...
- Android: 触屏fling/scroll/drag的区别及其详细过程
Google了一下,终于搞清了touch screen下的几种操作模式(对应的是事件). 对于一个view, 常用的操作有点击(click)和长按(long press)二种.实际上,这些操作类型是A ...
- 多测师全方位面试题腾讯 _自动化面试题_高级讲师肖sir
作答注意:候选人可以两题都做,也可以两题任选一题做即可. 笔试题一:1.查询 https://www.newsmth.net/nForum/#!board/PieLove2.获取发贴时间是2020年8 ...
- Python自动化运维之高级函数
本帖最后由 陈泽 于 2018-6-20 17:31 编辑 一.协程 1.1协程的概念 协程,又称微线程,纤程.英文名Coroutine.一句话说明什么是线程:协程是一种用户态的轻量级线程.(其实并没 ...
- APP自动化 -- swipe(滑动屏幕)
- 多测师讲解 _接口自动化框架设计_高级讲师肖sir
背景:因为把传入接口参数.组建测试用例.执行测试用例和发送报告,都放入一个.py文件对于接口的使用非常不灵活就需要数据和接口业务进行分离让代码之间的 耦合性降低.和实现接口的分层管理,所以需要对代码进 ...
- 多测师讲解自动化 _rf 变量_高级讲师肖sir
rf变量 log 打印全局变量 列表变量: 字典变量: 查看当前工程下的变量 紫色表示变量名有误 设置全局变量 设置列表变量 设置字段变量 关键字书写格式问题
- appium移动自动化详解
1移动自动化简介 移动自动化就是通过代码来控制手机,模拟人的动作,对手机进行一些点击,输入等操作,那python代码如何能控制到手机呢?目前的思路应该是python代码->Appium-pyth ...
- javascript 常用手势 分析
javascript 常用手势, 个人觉得有3个 tap,swipe(swipeLeft,swipeRight,swipeTop,swipeRight),hold tap 是轻击 判断的原则是,在to ...
随机推荐
- Java语言发展史-计算机进制转换
Java语言发展史 java的诞生 在1991年时候,James Gosling在Sun公司的工程师小组想要设计这样一种主要用于像电视盒这样的消费类电子产品的小型计算机语言. 这些电子产品有一个共同的 ...
- 【学习笔记】QT从入门到实战完整版(Lambda)(2)
Lambda Lambda 表达式很有意思,相信很多人初次见到 Lambda 表达式都会不能理解有什么用,我也一样,看了视频教程之后,突然意识到,Lambda 真的是太好用了,它可以在某些情况下可以很 ...
- DJI Flight Simulator 无人机模拟器 功能介绍与使用说明
0 前言 无人机是当前非常火热的"相机设备",而大疆又是其中翘楚,功能丰富,可以说是一个将带着云台的智能手机放到了天空中.如果你有自己玩过旋翼无人机航模的话,可能会体会到大疆的另一 ...
- 10月28日内容总结——ATM项目开发流程
目录 一.项目开发流程 1.项目需求分析: 2.项目架构设计: 3.项目分组开发: 4.项目提交测试: 5.项目交付上线: 二.项目需求分析 1.主题 2.项目核心 3.项目需求: 4.从需求中提炼出 ...
- Visual Studio增加Class类顶部签名描述信息
1. 找到安装路径 默认在 C:\Program Files (x86)\Microsoft Visual Studio\,然后进入到2019\Professional\Common7\IDE\Ite ...
- ClickHouse使用笔记
什么是ClickHouse? ClickHouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS). 更多说明请参考官网:https://clickhouse.com/docs/zh/ ...
- 微信小程序-支付
微信小程序的支付只要用到官方的支付API : wx.requestPayment(Object object) 官方文档地址:https://developers.weixin.qq.com/mini ...
- Python GDAL读取栅格数据并基于质量评估波段QA对指定数据加以筛选掩膜
本文介绍基于Python语言中gdal模块,对遥感影像数据进行栅格读取与计算,同时基于QA波段对像元加以筛选.掩膜的操作. 本文所要实现的需求具体为:现有自行计算的全球叶面积指数(LAI).t ...
- Mysql基本使用指南
一. 记录操作 子查询 select * from students where (age, height) = (select max(age), max(height) from students ...
- CSS3--通过Animation实现简单的手指点击动画
效果图 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta ...