Appium 禁掉安卓手机每次运行时都要安装 Unlock、Setting、Android Input Manager

网球王子 · March 13, 2017 · Last by hellohell replied at June 20, 2018 · 4412 hits

问题的产生
某些型号的安卓手机在运行Appium自动化测试的时候总会提示安装Unlock, Appium Setting, Android Input Manager ,其实该手机上已经安装了相应程序,但还是会弹出对话框提示是否替换,看下图:

解决办法
我手头的手机里只有oppo 、vivo 手机有这个问题,其他手机第一次安装过这些软件之后就不会再提示安装了;所以也许可以找到更好的方法,比如检查一下手机的配置是不是有什么问题; 不过,先用简单粗暴法绕开这个问题吧,更好的以后再尝试。

禁掉Appium中安装Unlock, Setting, Android Input Manager
方法很简单,按照如下方法修改2个文件:
第一个文件:android-helpers.js
位置: /Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/appium-android-driver/lib
改动点:

第二个文件:android-helpers.js
位置:/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/appium-android-driver/build/lib
改动点:

全部修改完毕之后,重启appium 烦人的Unlock, Setting, Android Input Manager就不会再弹出安装提示了;如果需要恢复自动安装,将上述改动还原即可。

共收到 22 条回复 时间 点赞

嗯。用OPPO测试会出现每次都要安装Unlock\Setting\Android Input Manager。HTC的不会。

android-helpers.js 不过这个文件为啥 我没有找到?

appium安装目录下appium/node-modules/appium/lib/devices/android/android.js 注释掉108、109、123、114行就可以了。

chen 回复

我刚刚找了一下windows下的appium,的确没有android-helpers.js

dudu 回复

能否帮忙贴上具体注销行的代码么,大家用的appium版本不同,直接说行数可能会有误解。

window appium安装目录下appium/node-modules/appium/lib/devices/android/android.js中注释如下行:
//this.uninstallApp.bind(this),
//this.installAppForTest.bind(this),
//this.pushSettingsApp.bind(this),
//this.pushUnlock.bind(this),

网球王子 回复

你用的是MAC?

chen 回复

对 我的是Mac目录,多谢留下详细信息

dudu 回复

注释了依旧会弹窗

vivo会,但是小米不会,谢谢你这个贴

楼主有遇到oppo手机color3.0版本中文输入乱码的情况吗?

回复

不行唉,还是一样会重复安装,我用的是vivo手机,平台是windows,appium1.6.5。求支援

我安装的是1.6.5版本的 找不到这段代码 求楼主帮忙

蓝莓酱 回复

是否为Android7.0?如果是Android7.0还需要屏蔽uiautomator2的安装逻辑。

非常感谢,按照你的方法之后,OPPO手机上没有再弹出了

dudu 回复

你好,按照您的建议,注释掉之后,"Appium Android input manager for unicode" App 的安装提示框,有时候弹出来,有时候不会弹出来,请问您知道是什么原因吗?谢谢

dudu 回复

是113,不是123哈,还是非常谢谢

this.pushAppium.bind(this),
//this.initUnicode.bind(this),
//this.pushSettingsApp.bind(this),
//this.pushUnlock.bind(this),
function (cb) {this.uiautomator.start(cb);}.bind(this),
this.wakeUp.bind(this),
//this.unlock.bind(this),
屏蔽到上面的四个,然后重启appium就可以了(老版本appium1.4.16)

知行合一 回复

如何进行屏蔽呢?我现在用的是appium v1.8的版本,谢谢!

新版本的怎么办。。 蛋疼 这个appium 没得用头了。。。

/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-android-driver/build/lib/android-helpers.js

/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-android-driver/lib/android-helpers.js

但确实不知道怎么改;mac桌面版 1.2.7

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up