UIAutomator2的API文档(二)
1.设备屏幕事件
熄灭屏幕d.screen_off()
唤醒屏幕d.screen_on()
屏蔽状态d.info.get('screenOn')#返回True or False
解锁屏幕d.unlock()#安卓7.0试了可以,安卓9.0就不行了,实际行为是 1.启动activity: com.github.uiautomator,2.按下home键
2.设备按键事件(所有的keyevent请点我)或官方地址
用法:d.press(keycode)
当前支持以下事件键值:,
home(主屏),back(返回上一级)
left,right,up,down,center(打开一个文本编辑框,可看到移动光标)
search(搜索框),enter(回车),delete ( or del 删除选中内容)
recent (recent apps),menu(菜单键) 这俩效果貌似一样的
volume_up(音量+),volume_down(音量-),volume_mute(静音)
camera(相机--没打开),power(电源键)
3.设备手势交互
#x,y表示坐标,或填入小数(0.5,0.5)百分比表示屏幕的中心点,适用于:click,swipe,drag,long_click
单击d.click(x,y)
双击d.double_click(x,y,[duration])#两次点击之间的间隔默认0.1秒
长按d.long_click(x,y,[delay])#delay默认0.5秒
滑动d.swipe(sx,sy,ex,ey,[delay])#delay默认0.5秒
拖拽d.drag(sx,sy,ex,ey,[delay])#delay默认0.5秒
多点滑动:hw.swipe_points([(209,943),(541,973),(551,1265),(857,1265)],0.2)
按下并拖动(Beta):
d.touch.down(x,y)
time.sleep(0.1)
d.touch.move(x,y)
d.touch.up()
4.屏幕方向设定
#打开拨号界面或短信界面:在android7.0上试了n,l,r均有效,android9.0上相册有受影响
n(natural),l(or left),r(right),u(upsidedown 这个无效)
direct = d.orientation#默认方向,输出natural
d.set_orientation('l')
#锁定/解锁屏幕旋转
d.freeze_rotation()
d.freeze_rotation(false)
5.屏幕截图
#要获得PIL格式的图像,需要安装pillow库,支持png、jpg格式:d.screenshot("c:/name.jpg")
#要获得opencv格式的图像,需要安装numpy和cv2库,用法如下:
img=xm.screenshot(format='opencv')
cv2.imwrite('c:/test.jpg',img)
#获得原始的jpeg数据
imgbin=d.screenshot(format='raw')
open("test.jpg","wb").write(imgbin)
6.转储UI hierarchy
xml=d.dump_hierarchy()
7.打开通知中心/快捷设置
d.open_notification()
d.open_quick_settings()