赞 。我记得当时做自动化时,领导也有说过需要懂点 Android 开发。然后就自己买了点书(第一行代码)等 。后来也陆陆续续的做过项目中的一些 app 的开发,对自动化还是有不少帮助的。
uiautomator1 在 sdk30 以后,不再支持这种方式运行了哦
最开始点击后会放大,就无法在用之前的坐标去取消
客户那边提出要测这种的。。
谢谢,公司有搭建的图像匹配,但是识别不了,或许是可信度调的高。之前我了解到图像识别好像识别不了颜色的吧,如果要选特定价位的座位呢。
谢谢,关键在于怎么区分座位
链接: https://pan.baidu.com/s/1Ddt83Z0zrBwOq2ioDmZWzQ 提取码: agzi
可以试试效果
先执行 adb push 到 /data/local/tmp 目录
运行:adb shell 'export CLASSPATH=/data/local/tmp/uiwatcher.apk; app_process /system/bin com.tinypace.uiwathcer.UiWatcher' -t 100000 -p P2ssw0rd -l true
t 是程序超时时间,p 是要输入的密码(vivo、oppo),l 是执行一次还是循环
通过反射的方式获取 uiAutomation,然后以 app_process 方式启动 这样可以做到无需安装,来处理弹窗和安装
谢谢,是第三方 app, 然后首次选中座位后,会放大,坐标会发生变化。
谢谢,我这边测试了图像识别也没法识别,其次就是识别了该怎么区分对应哪个分类的啊
大佬可有思路啊,能否指点下
还有一种是将 SIM 卡插入到短信猫中,然后自己实现后台接口。目前我司就是用的这两种
直接看自动化的结果吧
Cursor cursor = null;
try {
cursor = instrumentation.getTargetContext().getContentResolver().query(Uri.parse("content://sms")
, new String[]{"_id", "address", "body", "date", "read", "type"},
null, null, "date desc"); //
if (cursor != null) {
while (cursor.moveToNext()) {
String read = cursor.getString(cursor.getColumnIndex("read"));
String type = cursor.getString(cursor.getColumnIndex("type"));
if (read.equals("0") && type.equals("1")) {
// 在这里获取短信信息
String body = cursor.getString(cursor.getColumnIndex("body"));
Pattern pattern = Pattern.compile("([0-9]{4,6}).*([0-9]{6})");
Matcher matcher = pattern.matcher(body);
if (!matcher.find()) {
pattern = Pattern.compile("([0-9]{4,6})");
matcher = pattern.matcher(body);
if (matcher.find()) {
verifyCode = matcher.group(1);
break;
}
} else {
verifyCode = matcher.group(1);
break;
}
}
}
}
这个是获取当前收到的未读短信
不需要 root 的
读短信数据库
试了下,确实拿不到。看来只能通过 OCR 来识别了
这个获取不到有可能是被过滤了,得看获取结构代码那边,有可能是过滤掉 isVisibleToUser 这个属性了。方便的可以把 apk 发下吗,我这边获取试试
可以判断前台是否是被测 app 在获取,现在 perfdog 收费了,没法进行验证对比
手机同屏页面啊
可以看下我发 gif,取到的是被测 app 的流量,软件商店的下载流量并未被算进去
试试 根据 pid 来读取,/proc/pid/net/dev | grep wlan0:
那应该是你的编译版本低于 30 所以用不了
?
这样有问题?