- Python >=3.6
安装:
pip install -U --pre uitest
使用
import uitest
获得设备实例,入参('12344321')为序列号,一台设备可不填,可以直接操作adb命令
d = uitest.Device('12344321')
获取元素实例,入参('12344321')为序列号,一台设备可不填,获取元素坐标和信息
e = uitest.Element('12344321')
点亮屏幕
d.screen_on()
根据文字点击“设置”,等待5秒
e.click(text='设置',timeout=5)
根据id点击计算器的“1”
e.click(resourceId='com.android.calculator2:id/digit_1')
根据content-desc点击计算器的“+”号
e.click(content_desc='加')
根据id或者其它属性获取此控件的信息
e.info(resourceId='com.android.calculator2:id/digit_1')
例如根据id获取此控件的text值
e.info(resourceId='com.android.calculator2:id/digit_1')['text']
判断此控件是否存在
if e.exists(resourceId='com.android.calculator2:id/digit_1'):
print('存在')
else:
print('不存在')
根据本地的图片来点击设备,此处screenshot.png为脚本目录下icon文件夹里的图片
print(d.find_icon_click('icon/screenshot.png'))
在设置里滑动查找并点击“日期和时间”,此处是点击内容包含“日期”的
e.swipe_find(textContains='日期')
等待元素出现。 str是命令行显示内容,自定义; text表示根据text查找;也可根据resourceId、content_desc、textContains、icon_name查找; click为True表示找到后就点击,为False不点击
e.time_jishi(str="等待", text='交易成功', click=True)
运行adb命令
d.adb_return('adb命令')
运行shell命令
d.shell_return('shell命令')
获取设备中的Android版本号,如4.2.2
print(d.getAndroidVersion())
获取Android平台型号品牌
print(d.get_brand())
获取设备SDK版本号,如19
print(d.getSdkVersion())
获取设备型号
print(d.getDeviceModel())
获取os版本
print(d.getOsVersion())
根据包名获取进程pid
print(d.getPid(“com.lzz.cash”))
获取当前运行的应用的包名
print(d.getCurrentPackageName())
获取当前运行应用的activity
print(d.getCurrentActivity())
获取最大内存
print(d.getMemTotal())
获取剩余内存
print(d.getMemFree())
获取cpu型号
print(d.getCpuHardware())
获取电池电量
print(d.getBatteryLevel())
获取电池电压,单位mV毫伏
print(d.getBatteryVoltage())
电池健康状态:只有数字2表示good
print(d.getBatteryHealth())
电池是否在AC充电器充电
print(d.getBatteryACpowered())
电池是否安装在机身
print(d.getBatteryPresent())
获取电池充电状态:未知状态\充电状态\放电状态\未充电\充电已满
print(d.getBatteryStatus())
获取电池温度
print(d.getBatteryTemp())
此手机的单个应用程序最大内存限制,超过这个值会产生OOM(内存溢出) 测程序一般看这个
print(d.get_heapgrowthlimit())
获取设备屏幕分辨率,return (width, high)
print(d.getScreenResolution())
截图,保存到脚本"tmp\screenshot"目录里
d.screenshot("文件名,可不填,默认是screenshot.png")
获取设备中安装的系统应用包名列表
print(d.getSystemAppList())
获取设备中安装的第三方应用包名列表
print(d.getThirdAppList())
模糊查询应用包名列表
print(d.getMatchingAppList("qq"))
获取启动应用所花时间,单位毫秒
print(d.getAppStartTotalTime("com.android.settings/.Settings"))
根据包名判断应用是否安装,已安装返回True,否则返回False
print(d.isInstall("com.example.apidemo"))
清除应用用户数据
print(d.clearAppData("com.android.contacts"))
启动一个Activity
print(d.startActivity("com.android.settinrs/.Settings"))
启动一个应用
print(d.start_app("com.android.settings"))
使用系统默认浏览器打开一个网页
print(d.startWebpage("http://www.baidu.com"))
启动拨号器拨打电话
print(d.callPhone(10086))
发送一个按键事件。先输入uitest.Keycode.有代码提示。
print(d.sendKeyEvent(uitest.Keycode.增加音量))
发送一个按键长按事件,Android 4.4以上
print(d.longPressKey(uitest.Keycode.HOME键))
发送触摸点击事件,支持具体坐标和百分比坐标
print(d.click(0.5, 0.5))
发送滑动事件,Android 4.4以上可选duration(ms)
print(d.swipe(0.9, 0.5, 0.1, 0.5))
长按屏幕的某个坐标位置, Android 4.4及以上
print(d.click_long(500, 600))
print(d.click_long(0.2, 0.9))
发送一段文本,只能包含英文字符和空格
print(d.setText("i am unique"))
获取内存,并写入到txt中记录
print(d.get_meminfo_heap("com.tencent.cash"))
取日志到“tmp\logcat”下
print(d.logcat_pull(**msg))
push电脑本地文件到手机
print(d.push(local, remote, override=True))
判断手机内部文件是否存在
print(d.is_remote_file_exist(“sdcard/11.png”))
pull手机里的文件到电脑本地
print(d.pull(“sdcard/11.png”))
判断屏幕是否点亮
print(d.is_screen_on())
判断WiFi是否打开
print(d.is_wifi_on())
获取ip地址
print(d.ipAddress())
获取物理网卡mac地址
print(d.get_mac())
获取设备里已装程序版本信息
print(d.getVersionName("com.tencent.qq"))
获取sn号
print(d.get_sn())
返回
print(d.back())
获取指定包名的应用的wifi流量消耗, 目前只针对部分机型
print(d.get_allnet("com.tencent.qq"))
写入内容到电脑本地txt文件,name:文件名,context:txt里的内容
uitest.write_txt_file(name='记录日志', content='123')
打印带颜色的字
uitest.print_color('你好', 红色)
强行停止当前应用
d.force_stop(d.getCurrentPackageName())
备注:如需打包exe,可注释掉__init__代码里的from uitest import aircv as ac, 能大幅减小exe包大小
"# uitest" "# uitest"