前言
部分真機可能會出現每次運行代碼,啟動app之前都會重復安裝Unlock和Appium Setting這兩個小工具,有的手機會自動安裝,這個還好。
有的手機每次都會彈出一個安裝確認框(如部分小米和vivo出現),這樣就比較麻煩了,不手動去點,就無法繼續執行代碼了。
注意:appium之前老的版本1.4和appium desktop v1.7以后版本安裝路徑不一樣,也有差異
小編主要是以appium desktop(大於1.7版本)為例
我的環境:
-
appium desktop 桌面GUI版本 V1.7.1
-
appium desktop 無界面命令行版本 V1.8.1
appium desktop 桌面版本
1.先看appium desktop桌面安裝版本,如下圖,我的版本是v1.7.1
2.雙擊安裝之后,會安裝到c盤,可以直接搜索:appium desktop,然后按以下層級找到android-helpers.js修改如下幾個地方
\appium-desktop\resources\app\node_modules\appium\node_modules\appium-android-driver\lib
修改如下幾個地方:
1.注釋掉355行 // await adb.install(unicodeIMEPath, false);
2.注釋掉522行 // await helpers.pushSettingsApp(adb);
3. 注釋掉526行 // await helpers.pushUnlock(adb);
3.再繼續找到build\lib下的android-helpers.js文件
\appium-desktop\resources\app\node_modules\appium\node_modules\appium-android-driver\build\lib
修改如下幾個地方:
1.注釋掉919行,然后加一行代碼
// return _regeneratorRuntime.awrap(adb.install(_appiumAndroidIme.path, false));
return context$1$0.abrupt('return', defaultIME);
2.注釋掉1366行,然后加一行代碼
// return _regeneratorRuntime.awrap(helpers.pushSettingsApp(adb));
return context$1$0.abrupt('return', defaultIME);
3.注掉1380行,然后加一行代碼
// return _regeneratorRuntime.awrap(helpers.pushUnlock(adb));
return context$1$0.abrupt('return', defaultIME);
修改完后保存,然后重啟appium,重新執行代碼,就不會重復安裝Unlock和Appium Setting了
appium desktop 命令行版本
1.如果是通過npm安裝的appium命令行版本,我的命令行版本是1.8.1,那就在c盤搜索:npm,然后一層層找到以下路徑
\npm\node_modules\appium\node_modules\appium-android-driver
2.在\npm\node_modules\appium\node_modules\appium-android-driver\lib\android-helpers.js打開修改
修改如下幾個地方:
1.注釋掉358行 // await adb.install(unicodeIMEPath, false);
2.注釋掉570行 // await helpers.pushSettingsApp(adb);
3. 注釋掉581行 // await helpers.pushUnlock(adb);
3.繼續在\npm\node_modules\appium\node_modules\appium-android-driver\build\lib\android-helpers.js打開修改
修改如下幾個地方:
1.注釋掉782行,然后加一行代碼
// return _regeneratorRuntime.awrap(adb.install(_appiumAndroidIme.path, false));
return context$1$0.abrupt('return', defaultIME);
2.注釋掉1285行,然后加一行代碼
// return _regeneratorRuntime.awrap(helpers.pushSettingsApp(adb));
return context$1$0.abrupt('return', defaultIME);
3.注掉1321行,然后加一行代碼
// return _regeneratorRuntime.awrap(helpers.pushUnlock(adb));
return context$1$0.abrupt('return', defaultIME);
本篇主要是解決appium1.7以上版本,不同的版本號代碼行數會有一點點差異
可能遇到的報錯
1.如果遇到這個報錯no such file or directory 'c:\node\stylus\package.json'。那就執行這2句
npm install -g express
npm init -y
詳情查看stackoverflowhttps://stackoverflow.com/questions/9484829/npm-cant-find-package-json