Appium+python自动化55-appium desktop每次启动安装Unlock和Appium Setting问题
前言
部分真机可能会出现每次运行代码,启动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
上海-悠悠 QQ交流群:330467341
Appium+python自动化55-appium desktop每次启动安装Unlock和Appium Setting问题的更多相关文章
- Appium+python自动化8-Appium Python API
Appium+python自动化8-AppiumPython API 前言: Appium Python API全集,不知道哪个大神整理的,这里贴出来分享给大家. 1.contexts conte ...
- appium+python自动化61-中文输入乱码问题解决
前言 在夜神模拟器上输入中文,发现是乱码,将unicodeKeyboard和resetKeyboard参数设置为True了,发现还是没法解决. 打开手机设置语言和输入法,发现找不到Appium And ...
- Appium+python自动化20-查看iOS上app元素属性
前言 学UI自动化首先就是定位页面元素,玩过android版的appium小伙伴应该都知道,appium的windows版自带的Inspector可以定位app上的元素 Mac版的appium1.6的 ...
- Appium+python自动化19-iOS模拟器(iOS Simulator)安装自家APP
前言 做过iOS上app测试的小伙伴应该都知道,普通用户安装app都是从appstore下载安装,安装测试版本的app,一般就是开发给的二维码扫码安装, 或者开发给个.ipa的安装包文件,通过itoo ...
- appium+python自动化50-生成定位对象模板templet(jinja2)
前言 每次自己写pageobject定位元素对象太繁琐,格式都差不多,只是换个定位方法,这种就可以才有模板的方式,批量生成pageobject定位元素对象的模板 python里面生成模板有两个模块可以 ...
- Appium+python自动化20-查看iOS上app元素属性【转载】
前言 学UI自动化首先就是定位页面元素,玩过android版的appium小伙伴应该都知道,appium的windows版自带的Inspector可以定位app上的元素Mac版的appium1.6的版 ...
- Appium+python自动化19-iOS模拟器(iOS Simulator)安装自家APP【转载】
前言 做过iOS上app测试的小伙伴应该都知道,普通用户安装app都是从appstore下载安装,安装测试版本的app,一般就是开发给的二维码扫码安装, 或者开发给个.ipa的安装包文件,通过itoo ...
- Appium+python自动化-查看app元素属性
本文转自:https://www.cnblogs.com/yoyoketang/p/7581831.html 前言 学UI自动化首先就是定位页面元素,玩过android版的appium小伙伴应该都知道 ...
- appium+python自动化52-多点触控MultiAction
前言 MultiAction是针对多点触控操作的,是TouchAction的一个补充模块 TouchAction用法参考前面的一篇:appium+python自动化33-TouchAction 多点触 ...
随机推荐
- numpy,看不懂,但很利害
慢慢有感觉.. 截几个图看看. import numpy as np np.random.seed(42) complex_numbers = np.random.random(5) + 1j * n ...
- java EE : http 协议响应头部信息验证
一 location :***** 302 重定向 private void doWork(HttpServletRequest req, HttpServletResponse resp ...
- 前端JS框架系列之requireJS基础学习
1 背景 伴随着项目功能的不断扩充,客户体验的不断完善,实现交互逻辑的JS代码变得越来越多.起初,为了管理JS代码,我们把JS从页面中解放出来独立成文件,接着又把相似的交互代码提取到公共的JS页面中. ...
- 【LOJ】#2173. 「FJOI2016」建筑师
题解 蒟蒻只会\(O(nAB)\)的dp= = 那么先说答案 \(S_{u}(n - 1,a + b - 2) * \binom{a + b - 2}{a - 1}\) 其中\(S_{u}(n,m)\ ...
- 用 Python实现一个ftp+CRT(不用ftplib)
转载请注明出处http://www.cnblogs.com/Wxtrkbc/p/5590004.html 本来最初的想法是实现一个ftp服务器,用来实现用户的登陆注册和文件的断点上传下载等,结果做着 ...
- 自动化测试框架Cucumber和Robot Framework的实战对比
自动化测试框架Cucumber和RobotFramework的实战对比 一.摘要 自动化测试可以快速自动完成大量测试用例,节约巨大的人工测试成本:同时它需要拥有专业开发技能的人才能完成开发,且需要大量 ...
- bzoj 1855 dp + 单调队列优化
思路:很容易写出dp方程,很容易看出能用单调队列优化.. #include<bits/stdc++.h> #define LL long long #define fi first #de ...
- 项目中jquery插件ztree使用记录
最近公司要求做一个关于后台的管理系统.在这个mvvm模式横行的年代,虽然这里用jquery做项目可能有点不符合时代的潮流,但是管他呢,能做出来先在说呗(公司以后要改用angular或者vue来统一前端 ...
- 【数据结构】Trie树
数据结构--Trie树 概念 Trie树,又称字典树.前缀树,是一种树形结构,是一种哈希树的变种.典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计 ...
- Xcode代码提示里的字母含义
P -- 协议 M -- 成员方法 C -- 类 K -- 枚举 .常量 V -- 成员变量 T -- typedef类型 G -- 全局变量 f -- 函数 # -- #define指令