uiautomator2-App内操作之设备通用操作
- 打开\关闭屏幕
d.screen_on() # 打开屏幕
d.screen_off # 关闭屏幕
- 获取当前屏幕状态
d.info.get('screenOn') # 要求安卓版本>=4.4
- 点击硬建/软键
d.press("home") # 点击home键,参数填写键的名称
d.press("back") # 点击back键,参数填写键的名称
d.press(0x07, 0x02) # 按下键码0×07(“0”)与META ALT(0x02)
目前支持的按键名:
home
back
left
right
up
down
center
menu
search
enter
delete(or del)
recent(recent apps)
volume_up
volume_down
volume_mute
camera
power
unclock()
:解锁屏幕
d.unclock()
# 等价于:
# 1、启动activity:com.github.uiautomator.ACTION_IDENTIFY;
# 2、按“home”键
click()
:点击
d.click(x, y) # 参数为偏移值,默认是控件中心,即x=0.5,y=0.5
double_click()
:双击
d.double_click(x, y) # 参数为偏移值,默认是控件中心,即x=0.5,y=0.5
d.double_click(x, y, 0.1) # 两次单击之间的默认持续时间为0.1s
long_click()
:长按
d.long_click(x, y)
d.long_click(x, y, 0.5) # 长按0.5s
swipe()
:滑动
d.swipe(sx,sy,ex,ey) # 参数分别为需要滑动到的坐标值和和滑动之前的坐标
d.swipe(sx, sy, ex, ey, 0.5) # 滑动0.5
swipe_ext()
:滑动扩展功能
d.swipe_ext("right") # 手指右滑 参数可选择填写"right","left","up","down"
d.swipe_ext("right", scale=0.9) # scale默认为0.9,即滑动距离为屏幕宽度的90%
d.swipe_ext("right", box=(0,0,100,100)) # 在(0,0)->(100,100)区域做滑动# 使用Direction作为参数
from uiautomator2 import Directiond.swipe_ext(Direction.FORWARD) # 页面下翻 等价于d.swipe_ext("up")
d.swipe_ext(Direction.BACKWARD) # 页面上翻
d.swipe_ext(Direction.HORIZ_FORWARD) # 页面水平右翻
d.swipe_ext(Direction.HORIZ_BACKWARD) # 页面水平左翻
drag()
:拖动
d.drag(sx, sy, ex, ey) # 从(ex,ey)处(sx,sy)处
d.drag(sx, sy, ex, ey, 0.5) # 滑动0.5s
swipe_point()
:滑动经过多个点,多用于九宫格解锁
# 从(x0,y0)->(x1,y1)->(x2,y2)
# 0.2表示必须在0.2s之内从完成滑动
d.swipe_points([(x0,y0),(x1,y1),(x2,y2)],0.2)
- 触摸和垂悬(不支持百分比)
d.touch.down(10,10) # 模拟按下
d.time.sleep(.01) # down 和 move之间的延迟,可以自己控制这里填写的数
d.touch.move(15,15) # 模拟移动
d.touch.up() # 模拟抬起
click、swipe、drap操作都支持百分比位置值。eg如下
d.long_click(0.5, 0.5) # 长按屏幕中心
- 屏幕相关
- 1、
orientation()
:检索/设置设备方向
# 检索方向,输出可以使”natural“、”left“、”right“、”upsidedown“
orientation = d.orientation# 设置设备方向
# 注意:设置"upsidedown" 需要Android>=4.3
d.set_orientation('u;') # or upsidedown
d.set_orientation('l') # or "left"
d.set_orientation('r') # or "right"
d.set_orientation('n') # or "natural"
- 2、
freeze_rotation()
冻结/解冻方向。
Tip:默认不填参数时是冻结放下那个。填写参数False时是解冻方向。
# 冻结方向
d.freeze_rotation()
# 解冻方向
d.freeze_rotation(False)
- 3、
scrennshot()
:获取截图
# 截图并将文件保存至电脑,要求Android版本>4.2
d.screenshot("home.jpg") # 参数为保存图片的文件名# 得到一个格式化照片。前提是需要安装pillow
image = d.screenshot()
image.save("home.jpg") # 图片格式仅支持jpg和png# 获取opencv格式的图像。前提见需要先安装numpy和cv2
import cv2
image = d.screenshot(format='opencv')
cv2.imwrite('home.jpg', image)# 获取原始jpeg数据
imagebin = d.screenshot(format)
open("some.jpg","wb").write(imagebin)
- 4、
dump_hierarchy()
:转出UI存储结构
# 获取UI层次结构转储内容(Unicode)
xml = d.dump_hierarchy()
- 5、打开通知或快速设置
# 打开通知
d.open_notification()
# 打开快速通知
d.open_quick_setting()
uiautomator2-App内操作之设备通用操作相关推荐
- python生成递增序列_Python的6种内建序列之通用操作
数据结构式通过某种方式(例如对元素进行编号)组织在一起的数据元素的集合,这些数据元素可以是数字或者字符,甚至可以是其他数据结构.在Python中,最基本的数据结构是序列(sequence).序列中的每 ...
- Android App内截屏监控及涂鸦功能实现
Android App内截屏监控及涂鸦功能实现 Android截屏功能是一个常用的功能,可以方便的用来分享或者发送给好友,本文介绍了如何实现app内截屏监控功能,当发现用户在我们的app内进行了截屏操 ...
- android App内监听截图加二维码
Android截屏功能是一个常用的功能,可以方便的用来分享或者发送给好友,本文介绍了如何实现app内截屏监控功能,当发现用户在我们的app内进行了截屏操作时,进行对图片的二次操作,例如添加二维码,公司 ...
- python 生成001开始的序号_你知道嘛:Python内建序列通用操作有6种实现方法(赶快收藏)...
本文内容主要介绍了Python内建序列通用操作6种实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下!!! 数据结构式通过某种方式(例如对元素进 ...
- 2021年制冷与空调设备运行操作考试APP及制冷与空调设备运行操作找解析
题库来源:安全生产模拟考试一点通公众号小程序 制冷与空调设备运行操作考试APP考前必练!安全生产模拟考试一点通每个月更新制冷与空调设备运行操作找解析题目及答案!多做几遍,其实通过制冷与空调设备运行操作 ...
- 【Python】序列通用操作
目录 一 序列通用操作 1 判断值是否属于序列 2 序列链接与重复 3 下标索引 4 切片 5 步长 6 序列的基本内置全局函数 二 列表list常用操作 1 列表的特征 2 列表与生成器 3 可 ...
- Html 内嵌 选择器属性 Dom操作 JavaScript 事件
HTML标签: 一.通用标签(一般标签) 1.格式控制标签 <font color="#6699aa" face="楷体" size="24&q ...
- 小爱同学点灯出现要操作的设备好像出问题了等一会再试吧的问题解决办法
项目:使用小爱同学连接Blinker ESP8266,用小爱同学实现点灯 出现了"要操作的设备好像出问题了等一会再试吧"的问题.困惑了我好几天,也是刚刚才找到解决办法.所以,很兴奋 ...
- py04 内置类型 序列 数字 字符串操作 列表 不可变性
F1. python知识结构 1.Python程序可以分解为模块.语句.表达式.对象 关系 程序由模块构成 模块包含语句 语句包含表达式 表达式创建并处理对象 2.Python 内置对象是定义属于我们 ...
最新文章
- python系统-Python OS模块常用功能 中文图文详解
- 敏友的【敏捷个人】有感(3): 有感于“敏捷个人”讨论与练习
- C语言基础:C语言指针(6) - 指针和字符串
- 私家车合乘系统 matlab,适用于预约拼车的合乘人员沟通方法及其系统的制作方法...
- Cacti auth.php,Cacti微信企业号图文报警
- C#阻止计算机关闭显示器和待机
- 从hadoop-0.20.2升级到hadoop-1.0.3
- 服务器linux换windows,【服务器运维】如何将linux体系更换成windows体系
- 自定义ZXing二维码扫描界面并解决取景框拉伸等问题
- vuex 在typescript中的写法
- mvn package时,报错A required class is missing: com/thoughtworks/xstream/io/HierarchicalStreamDriver...
- VB2010(3)整型运算
- 第四届“云鼎奖”网络投票火热进行中——入围名单一览
- 前端安装项目报错1.gyp info it worked if it ends with ok
- Altium Designer16 精心总结
- c语言心得100,c语言课程设计心得体会
- 【实战笔记】Java 算法与数据结构-排序(选择、插入、冒泡、希尔、归并、快速、堆)
- 如何自制一款tlc颗粒的固态硬盘
- _混沌系统的FPGA实现
- 入行数据分析,自学好还是报班培训比较好
热门文章
- 快速了解position independent code(PIC)
- 广东省阳江市谷歌卫星地图下载
- 画面单一怎么办,数字平原卡通渲染成为选择
- 关于1970年之前的时间要怎么转换成时间戳啊 负数要怎么处理
- google Reader快捷键
- 代码随想录Day09:28. 实现 strStr()、459.重复的子字符串、字符串总结 、双指针回顾
- 怎么用C语言输出字符B,使用C语言实现A口为输入B口为输出
- 博客园9月份第4周51Aspx源码发布详情
- gmsv源代码c语言,真正完整可编译的石器时代完整源代码服务端 - 下载 - 搜珍网...
- Linux-nginx重启