不管是 UIAutomator1、还是 UIAutomator2,还是 espresso,在脚本执行之前就要安装很多 apk,如 UIAutomator2 的 apk,Appium Settings APK,还有被测应用 apk,在脚本启动之前,会有很多权限框弹出,不止这样,在 app 测试过程中,还可能会有动态权限申请,也会弹出权限框,。。。。。并且,中途可能会出现系统更新对话框或者其他的,请问下你们都是怎么解决的呢?
顺便 at 下 @seveniruby 求教大神 😊
具体方法我已经有答案,并且实现了,参考我的专栏:
这个网上有教程可以通过修改 appium 的 js 解决,你百度查一查
我知道修改,就是觉得比较麻烦,我想知道大家都是怎么搞的。
https://testerhome.com/topics/18730
同求,ios 也有这样的困扰
atx 的 uiautomator2 里面的 watcher 了解下
写了个 apk,继承 AccessibilityService,和当时的那些自动抢红包一个原理
adb shell pm grant 包名 android.permission.权限
adb install -r -p
初始时用 adb 点允许不知道可行不,装完 apk 后,用 uiautomator2 里面的 watcher,watcher 挺用的啊,设置好关键字 后,遇到就点,而且点击速度还快
。。。我感觉一般都是叫 uiautomator 和 uiautomator2,没人把前者叫作 uiautomator1 的……
这两个库不是一二代的关系。
desired_caps2 = {"deviceName":"860BCMN22FF2",
"app": app,
"noReset": True,
"appWaitPackage": "c.l.a",
"appWaitActivity":"com.example.TestPlugin.MyActivity",
"appWaitDuration": 60000,
"newCommandTimeout": 200,
"platformVersion": "7.0",
"autoGrantPermissions": True,
"platformName": "Android",
"automationName": "UiAutomator2"
}
sleep(3)
if __name__ == "__main__":
# 调用始终允许函数
print('begin main')
# performance_service = PermissionServer(desired_caps['deviceName'], False)
# performance_service.start()
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
time.sleep(1)
# performance_service.setPause(1)
if name == "main":
# 调用始终允许函数
print('begin main')
# performance_service = PermissionServer(desired_caps['deviceName'], False)
# performance_service.start()
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
time.sleep(1)
# performance_service.setPause(1)
遇见几个问题:已经 block 了
为什么后安装上的 app, 启动后不长时间就自己杀死进程呢??
发现安装上的 app 和原来的 app 签名文件不一样? 如何解决这个 2 个问题呢???
app 升级到 28 后,必须怎么解决的???
是可行的 不过 appium 要升级到 1.10 以上的兼容 2
不过 adb 点击坐标比较不兼容,dump page 分析还好一点 就是慢