说明
UIAutomator2可用于做安卓相关的自动化,WEditor可以使我们更加便捷的写自动化脚本
基础环境
Python 3.7.3
安卓手机 安卓8
开始搭建
如果使用conda ,请先创建一个新的Python环境
1. 安装 uiautomator2
pip install uiautomator2 -i https://pypi.tuna.tsinghua.edu.cn/simple/
2.安装 atx-agent
python -m uiautomator2 init
此步骤完成之后手机上会有一个ATX的图标
3.安装 weditor
pip install weditor== 0.6.4 -i https://pypi.tuna.tsinghua.edu.cn/simple/
安装完成之后电脑桌面上会出现一个图标
开始运行
在命令行输入python -m weditor 或者 双击桌面的图标,即可运行(建议还是输入命令)
启动之后如下图
可以根据需要来点击 "实时"与 "静态"
自动化脚本
1.导包 import uiautomator2 as u2
2.设备的连接: 可用adb devices 进行查看
如果通过网络连接的则需输入对应的ip即可
代码如下
import time
import uiautomator2 as u2
d = u2.connect("7XBRX18A15017538") # adb 查看的设备号
# 通过坐标来点击
d.click(0.103, 0.479)
time.sleep(2)
d.press("home")
# 通过xpath来点击
# d.xpath('//*[@text="设置"]').click()
# d.press("home")
常用接口如下
# 清空应用
# d.app_clear('com.youdao.note')
# 当前应用
# res = d.app_current()
# print(res)
# 返回
# {'package': 'com.youdao.note', 'activity': 'com.youdao.note.splash.SplashActivity'}
# 获取应用信息
# res = d.app_info('com.youdao.note')
# print(res)
# 应用安装,注意转义字符"\"
# d.app_install(r"D:\apks\youdaonote_android_7.0.5_youdaoweb.apk")
# 启动应用
# d.app_start('com.youdao.note')
# 停止应用
# d.app_stop('com.youdao.note')
# 停止所有应用, 返回停止的包名列表
# res = d.app_stop_all()
# print(res)
# 等待应用运行,例如在5秒内运行有道云app,则会返回pid,如果5秒内不运行则返回0
# res = d.app_wait('com.youdao.note', 5)
# print(res)
# 坐标点击
# d.click(0.493, 0.871)
# 返回
# d.press("back")
# 回到桌面
# d.press("home")
# 推送文件, /storage/emulated/0 手机的内部储存根目录,/storage/emulated/1 手机的内存卡储存根目录
# d.push("D:/apks/youdaoyunbiji_74.apk", "storage/emulated/0/")
# 截图
# d.screenshot("output.png")
# 视频录制,如果提示缺少模块请安装相关依赖
# pip install -U "uiautomator2[image]" -i https://pypi.tuna.tsinghua.edu.cn/simple/
# d.screenrecord('output.mp4')
# time.sleep(10)
# d.screenrecord.stop()
# 执行shell命令
# d.shell("pwd")
# 执行shell命令并且获得运行结果
# res = d.shell("ls -l").output
# print(res)
# 滑动
# 左滑
# d.swipe_ext("left", 0.9)
# 右滑
# d.swipe_ext("right", 0.9)
# 上滑
# d.swipe_ext("up", 0.9)
# 下滑
# d.swipe_ext("down", 0.9)
# 获取窗口大小
# res = d.window_size()
# print(res)
# 输入框输入文字,先点击,然后再send_keys
# d.click(0.084, 0.125)
# time.sleep(1)
# d.click(0.468, 0.057)
# d.send_keys("你好")
# d.click(0.896, 0.061)