通过Appium执行测试会在设备上安装unlock.app、setting.app、io.appium.android.ime三个应用,第一次使用Appium在新的Android设备上执行是不会有任何问题的,但是如果第二次运行代码,就会抛出异常。原因也很简单,就是因为unlock.app、setting.app、io.appium.android.ime在Appium中并没有去做智能判断设备上是否已经安装过,所以每次执行前都需要卸载这三个应用再执行代码才不会报错,当然也可以修改Appium的代码避免重复安装(unlock.app、setting.app在appium1.7版本已经修复如设备安装过则不会重复安装,而ime依然需要自己解决)。那么为什么Appium一定要安装这三个应用呢?到底有什么作用?下面一探究竟

1.Unlock

Unlock的作用是在手机锁屏的情况下,appium依然可以操作手机,如果这个unlock.apk没有安装,而手机是锁屏情况下会报错

项目地址:https://github.com/appium/unlock_apk

2.Setting

用于处理系统设置,然后应用程序关闭。一旦设备上安装,可以设置的wifidataanimationlocale(设置语言、国家),还可以得到当前位置,生成IME码等等。

项目地址:https://github.com/appium/io.appium.settings

3.Unicode IME

appium 自定义输入法,主要功能隐藏输入法界面及可输入中文。

项目地址:https://github.com/appium/io.appium.android.ime

4.解决重复安装的问题

在Appium安装目录下\node_modules\appium\lib\devices\android的文件夹里,有一个Android.js文件。(Appium-desktop的修改与Appium不通过,Appium-desktop可以参考https://blog.csdn.net/hszxd479946/article/details/78900982)

如下图注释4行代码,重启Appium服务即可

注意:这里需要注意一点的就是,第一次在设备上运行时,在不注释的情况下让Appium先在设备上安装这三个应用,然后修改注释并重启Appium服务继续测试。保证这三个应用在手机上存在。

6.一个Unicode IME的报错

A new session could not be created. (Original error: Command failed: C:\Windows\system32\cmd.exe /s /c "E:\Rocheng\ADT-bundle\sdk\platform-tools\adb.exe -s 5b30ee87 install "E:\Tool\Appium\node_modules\appium\build\unicode_ime_apk\UnicodeIME-debug.apk""

adb: failed to install E:\Tool\Appium\node_modules\appium\build\unicode_ime_apk\UnicodeIME-debug.apk: Failure [INSTALL_FAILED_ALREADY_EXISTS: Attempt to re-install io.appium.android.ime without first uninstalling.]

) (WARNING: The server did not provide any stacktrace information)

这个报错的原因是手动卸载造成的,如果不根据上面的注释修改,而是自己手动卸载设备中的应用,这时候很容易把Unicode IME忘记。可通过命令行在设备上卸载,三个应用的package名称是io.appium.settings、io.appium.unlock、io.appium.android.ime,通过adb命令卸载如下:

Appium基础学习之 | setting、unlock与unicode ime相关推荐

  1. Appium基础学习之 | Bootstrap源码分析

    在Appium执行日志流程分析这里已经讲解到Bootstrap的重要作用,今天就来切洋葱切一下它,看看它的真实面目: 源码地址:https://github.com/appium-boneyard/a ...

  2. Appium基础学习之 | Android Virtual Device Manager使用

    模拟器英文全称Android Virtual Device,检查AVD,就是安卓虚拟设备的意思.无论是在做安卓开发或者安卓测试都需要设备来运行.调试APP应用程序.所以在做APP自动化测试之前一定要准 ...

  3. Appium基础篇3-第一个appium自动化脚本之自动安装apk包到手机

    这篇,我们开始来一个实战练习,如何通过appium自动把电脑上一个安卓程序包给安装到一台安卓手机中.在写脚本之前,我们需要统一下方法和工具.我们知道Appium和selenium一样都支持Java和P ...

  4. python 内存溢出能捕获吗_从0基础学习Python (19)[面向对象开发过程中的异常(捕获异常~相关)]...

    从0基础学习Python (Day19) 面向对象开发过程中的=>异常 什么是异常 ​ 当程序在运行过程中出现的一些错误,或者语法逻辑出现问题,解释器此时无法继续正常执行了,反而出现了一些错误的 ...

  5. python基础代码的含义_Python基础学习篇

    原标题:Python基础学习篇 1.编码 默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是unicode 字符串. 当然你也可以为源码文件指定不同的编码:# -*- codi ...

  6. Oracle登陆SQL Plus,Oracle基础学习登陆SQLPLUS(一)

    或 system/(password) 连接到本地的最高帐号 Sql>help index Enter Help [topic] for help. Sql>show all 显示当前SQ ...

  7. 鸟哥的linux私房菜-基础学习篇 读书笔记

    从事linux工作一年多,算是能够熟练运用linux服务器,但仍觉得自己对Linux的原理,理论缺乏空洞,潜下心来认真阅读尘封的鸟哥经典,知识点很全,收获颇多,实践与知识结合,知行合一,对linux开 ...

  8. 1 python编程基础学习

    1 python编程基础学习 1. 程序 2 python简介(了解) 3 python的开发环境的搭建 4 第一个python程序 4.1 常用的dos命令 4.2 交互式 4.3 使用pychar ...

  9. Java基础学习—— IO流

    Java基础学习-- IO流 1 文件 1.1 文件的创建 1.2 文件常用的方法 2 IO流 2.1 FileInputStream 2.2 FileOutputStream 2.3 文件的拷贝 2 ...

最新文章

  1. 使用C语言扩展Python(三)
  2. 人工智能实践:TensorFlow笔记学习(三)——TensorFlow框架
  3. php数组分开_PHP学习之五:数组(三)合并、拆分、接合和分解数组
  4. JZOJ 3418. 【NOIP动态规划专题】选课
  5. WebService学习总结(1)——WebService相关概念
  6. 使用Shell和Java驱动程序的MongoDB身份验证配置示例
  7. 顾樵数学物理方法_圣彼得堡国立大学硕士研究生:物理与天文学
  8. c语言怎么查找中文字符,C语言自学,汉字编码范围查询!
  9. 用户体验衡量指标分析
  10. winform中notifyIcon的ShowBalloonTip方法的坑
  11. javamail 邮件发送、带格式、已保存
  12. 各种泵的图形符号_泵的图形符号
  13. 两种方法分析每月工作日计算程序
  14. 如何用计算机算标准偏差,标准差计算器怎样安装使用?标准差计算器使用教程介绍...
  15. php实现 三角形_HTML纯CSS绘制三角形(各种角度)
  16. 单GPU每秒76帧,重叠对象也能完美分割,多模态Transformer用于视频分割效果惊艳...
  17. lg android 互动游戏,LG G7 开启游戏模式(理论适用所有LG手机)
  18. 辣子鸡-辣子鸡家常做法
  19. 找不到驱动器。名为“.C”的驱动器不存在。的问题总结
  20. 法规标准-GB/T 39901标准解读(2021版)

热门文章

  1. 软件测试之微软学术搜索(Microsoft Academic Search)
  2. Re: 酷似抓虾的ruby on rail网站-猫爪
  3. 一起来学C++:C++中的代码重用
  4. ssh无密登陆机制图解
  5. python线程和进程-未完待续
  6. FF4J(特性框架)简介及入门
  7. 针对场景化痛点,锐捷网络推出极简光 2.X,以太全光网再下一城
  8. 小程序之修改单条数据
  9. python 1014 福尔摩斯的约会 (20 分)
  10. 陪审团(01背包, 难)