检查并维持设备端守护进程处于运行状态,应该是重启了atx守护进程:d.healthcheck()
1.隐式等待
import uiautomator2 as u2
serialno = ‘7f3dec60‘
d = u2.connect_usb(serialno)
d.implicitly_wait(3.0)
#3秒内未找到“搜索”按钮,则抛出错误uiautomator2.exceptions.UiObjectNotFoundError: -32002 Client error: <> data: , method: None
#此函数会影响以下事件click
, long_click
, drag_to
, get_text
, set_text
, clear_tex
d(text="搜索").click()#找到此按钮则直接点击
2.操作app
2.1安装app(仅支持从URL安装apk):d.app_install(‘http://some-domain.com/some.apk‘)
2.2启动app:d.app_start(package_name)
2.3停止app:d.app_stop(package_name) #等同于`am force-stop`强制停止app,可能会丢失数据
d.app_clear(package_name)#等同于`pm clear`
2.4停止所有app:d.app_stop_all(excludes=[package_name])#停止所有app除了括号内的,括号内容可选
2.5获取app信息:d.app_info(package_name)
保存app icon:img=d.app_icon(pkname)
img.save("icon.png")
3.文件推送/拉取
3.1推送文件到设备中:d.push("foo.txt", "/sdcard/")
3.2推送文件并重命名:d.push("foo.txt", "/sdcard/bar.txt")
3.3推送文件对象:with open("foo.txt", ‘rb‘) as f:
d.push(f, "/sdcard/")
3.4推送并改变文件访问权限:d.push("foo.sh", "/data/local/tmp/", mode=0o755)
3.5从设备中拉取文件到本地:d.pull("/sdcard/tmp.txt", "tmp.txt")
3.6从设备中拉取的文件不存在时 抛出错误:FileNotFoundError:d.pull("/sdcard/some-file-not-exists.txt", "tmp.txt")