Appium的android真机每次启动手机中都会安装Appium settings和Unclock的方法

一、需要解决的问题
在部分android机型上每次运行最新版的appium-desktop都需要安装AppiumSetting以及Unlock,并且安装过程需要用户手动来确认,即使测试机上已经安装了这两个组件,运行appium也会要求安装,对于测试以及脚本的调试来说非常不便。

二、解决过程
进入appium的安装目录:
windows:

C:\Users\Administrator\AppData\Local\Programs\appium-desktop\resources\app\node_modules\appium\node_modules\appium-android-driver\lib

每个人安装的位置不一样,总之找到\appium-desktop\resources\app\node_modules\appium\node_modules\appium-android-driver\lib就行。

Mac:/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-android-driver/build/lib

这里就以1.7.1 mac版本的appium为例子:(用命令安装Appium,其他方式安装appium 根路径有可能不一样)

 

# 因为appium(版本1.7.1)会每次测试会自动的安装所需要的setting\unlock\ime等apk,所以需要按照以下步骤进行注释,以屏蔽掉他们自己的安装:

# 快速定位文件快捷方式普通键盘:windows+shift+G ;苹果键盘:Option+shift+G (焦点必须在桌面快捷键才能使用)

 

1、文件: /usr/local/lib/node_modules/appium/node_modules/appium-android-driver/lib/driver.js,注释以下几句代码

await this.adb.uninstallApk(this.opts.appPackage);

await helpers.installApkRemotely(this.adb, this.opts);

await helpers.resetApp(this.adb, this.opts.app, this.opts.appPackage, this.opts.fastReset);

await this.checkPackagePresent();

 

 

2、文件:/usr/local/lib/node_modules/appium/node_modules/appium-android-driver/build/lib/driver.js 注释以下几句代码

return _regeneratorRuntime.awrap(_androidHelpers2['default'].resetApp(this.adb, this.opts.app, this.opts.appPackage, this.opts.fastReset));

return _regeneratorRuntime.awrap(this.adb.uninstallApk(this.opts.appPackage));

return _regeneratorRuntime.awrap(_androidHelpers2['default'].installApkRemotely(this.adb, this.opts));

return _regeneratorRuntime.awrap(this.checkPackagePresent());

 

 

3、文件:/usr/local/lib/node_modules/appium/node_modules/appium-android-driver/lib/android-helpers.js 注释以下几句代码

await adb.install(unicodeIMEPath, false);

await helpers.pushSettingsApp(adb);

await helpers.pushUnlock(adb);

 

 

4、文件 /usr/local/lib/node_modules/appium/node_modules/appium-android-driver/build/lib/android-helpers.js 替换以下几句代码

return _regeneratorRuntime.awrap(helpers.initUnicodeKeyboard(adb)) 

替换为return context$1$0.abrupt('return', defaultIME);

return _regeneratorRuntime.awrap(helpers.pushSettingsApp(adb)); 

替换为return context$1$0.abrupt('return', defaultIME);

return _regeneratorRuntime.awrap(helpers.pushUnlock(adb)); 

替换为return context$1$0.abrupt('return', defaultIME)

其中:修改之后需要重启电脑设置才会生效

下图为图解:

注意是在build路径下的lib文件夹

编辑这个文件:

Appium的android真机每次启动手机中都会安装Appium settings和Unclock的方法_第1张图片

找到下面这行,将它注释掉,并且在该行下方加上一行:

 

 

Appium的android真机每次启动手机中都会安装Appium settings和Unclock的方法_第2张图片

Appium的android真机每次启动手机中都会安装Appium settings和Unclock的方法_第3张图片

lib下面:

Appium的android真机每次启动手机中都会安装Appium settings和Unclock的方法_第4张图片

Appium的android真机每次启动手机中都会安装Appium settings和Unclock的方法_第5张图片

Appium的android真机每次启动手机中都会安装Appium settings和Unclock的方法_第6张图片

然后保存并且退出。重启appium即可。

你可能感兴趣的:(Appium的android真机每次启动手机中都会安装Appium settings和Unclock的方法)