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 Direction

d.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()
  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值