最开始做Android自动化测试时,通过执行脚本发现报,已安装UnicodeIME-debug.apk,再次安装失败,当时觉得这个apk对我来说没用,就把D:\Program Files (x86)\Appium\node_modules\appium\lib\devices\android\android.js里的这个安装程序this.initUnicode.bind(this),注释掉了

error: Failed to start an Appium session, err was: Error: Command failed: "D:\Program Files\android-sdk-windows\platform-tools\adb.exe" -s 37KRX18720004114 install "D:\Program Files (x86)\Appium\node_modules\appium\build\unicode_ime_apk\UnicodeIME-debug.apk"adb: failed to install D:\Program Files (x86)\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.]

  在做自动化的过程中发现,用华为自带的百度输入法,在微信里输入链接时,比如:......&qr_code=02607951,在输入时会自动变成&......&-qr_code=02607951,中间多了个横线。手工把键盘设置成appium的虚拟键盘后,这个问题解决了,但是要想自动化在其他手机上也跑起来,就必须要把注释解开,这样才会在第一次执行时按钮appium的虚拟键盘,问题又回到了开始,怎么解决华为8.0已安装UnicodeIME-debug.apk,执行自动化脚本报错的问题?

想了几种解决办法:

1、换低系统版本手机,但是测试资源有限

2、把自己手机恢复到出厂设置,降低系统版本,舍不得降版本

3、通过adb命令设置appium为默认输入法,前提是手机上已经安装了appium输入法(一直注释掉就不会安装appium虚拟键盘this.initUnicode.bind(this))

查询手机上所有输入法:adb shell ime list -s

  com.baidu.input_huawei/.ImeService --华为百度输入法
  io.appium.android.ime/.UnicodeIME --appium输入法

adb shell settings put secure default_input_method + 输入法
4、每次执行完自动化脚本,通过adb命令,卸载手机上appium键盘的安装程序,有点麻烦
1)通过adb命令获取appium键盘的报名
命令:adb shell pm list packages 获取手机是上所有应用的包名:io.appium.android.ime
2)卸载appium键盘
通过脚本执行adb命令:adb -s GSL0217302005195 uninstall io.appium.android.ime删除appium键盘

5、换成高版本的appium,使其兼容安卓8.0系统(推荐)

appium1.4+华为8.0执行自动化脚本,报启动session失败,原因是unicode_ime_apk\Uni codeIME-debug.apk在手机上已存在,再次安装失败,导致启动session失败,解决办法:换高版本的appium的更多相关文章

  1. 关于SQLServer2008数据如何导入SQL2005的解决办法,高版本数据导入低版本中。

    最近需要把SqlServer2008 的数据库导入sqlserver2005 中.直接备份还原肯定不行.后来想到可以生成脚本执行sql语句,并选择数据可以一同进行执行. 点击右键--->任务-- ...

  2. MySQL 执行SQL脚本 报ERROR 1231 (42000)的解决办法【转】

    今天在source mysqldump 备份文件时,发现导入的过程中报如下的错误: ERROR 1231 (42000): Variable 'time_zone' can't be set to t ...

  3. jmeter4.0 执行jmeter_server.bat报错

    Jmeter分布式执行1.-------------------------------Jmeter4.0  执行jmeter_server.bat   报错,是由于4.0要手工生成密钥 bin目录下 ...

  4. 安装JavaJDK没有jre环境的解决办法 错误: C:\Program Files\Java\jdk-11.0.7\jre

    安装JDK11 发先没有jre解决办法 在安装目录下执行 bin\jlink.exe --module-path jmods --add-modules java.desktop --output j ...

  5. 定时执行自动化脚本-(二)ant发送邮件及邮件中添加附件

    发送邮件及邮件添加附件均需要用java来实现 1.idea创建一个maven的java项目,目录结构如下 2.pom.xml文件添加依赖的javax.mail <dependencies> ...

  6. 解决jmeter5.1高版本linux CPU,IO,Memory监控性能测试 java.lang.NoSuchMethodError: org.apache.jmeter.samplers.SampleSaveConfiguration.setFormatter(Ljava/t

    jmeter中也可以监控服务器的CPU和内存使用情况,但是需要安装一些插件还需要在被监测服务器上开启服务. 安装性能监控插件(jmeter-plugins)后报如下错误,是由于jmeter版本过高jm ...

  7. 修改VS解决方案及工程名,解决如何打开高/版本VS项目

    对于VS2008等低版本与高版本VS之间的转换问题: 对照下面2个版本的不同点自由修改,切换到相应的版本文件(红字修改,灰色删除) ---------------------------------- ...

  8. 解决linux 升级高版本python3.7后yum不能使用的问题

    我们linux系统一般自带python2.7 版本,但是最近项目需求必须要上python3以上,对于用惯了python2的我来说,只能硬着头皮上了.下面是我的解决办法 which yum => ...

  9. Linux使用curl 方式安装docker-compose 后执行docker-compose version 检查安装是否成功时出错的解决办法

    0x0.缘起: 今天在一台新的Fedora 25上按照官方文档,使用curl方式安装 docker-compose后,验证是否安装成功时出错: 安装时使用的命令为; curl -L https://g ...

随机推荐

  1. Oracle单表备份三种方案

    备份方案一: 1. 备份 create table [备份名] as select * from [表名]; 2. 恢复 truncate table org_group; insert into o ...

  2. python convert csv to xlsx

    搬运:http://stackoverflow.com/questions/17684610/python-convert-csv-to-xlsx import os import glob impo ...

  3. Ceph的正确玩法之Ceph纠删码理论与实践

    http://blog.itpub.net/31545808/viewspace-2637083/ 注意空格,有的命令少空格 随着云计算业务的快速发展,国内外云计算企业的专利之争也愈发激烈.在云计算这 ...

  4. OC学习篇之---@property和@synthesize的使用

    在之前一片文章我们介绍了OC中的内存管理:http://blog.csdn.net/jiangwei0910410003/article/details/41924683,今天我们来介绍两个关键字的使 ...

  5. Security基础(二):SELinux安全防护、加密与解密应用、扫描与抓包分析

    一.SELinux安全防护 目标: 本案例要求熟悉SELinux防护机制的开关及策略配置,完成以下任务: 将Linux服务器的SELinux设为enforcing强制模式 在SELinux启用状态下, ...

  6. mysql全家桶(二)数据操作

    一.数据操作1.增#新增insert into 表名(字段列表) values(值列表);INSERT INTO table_name ( field1, field2,...fieldN ) VAL ...

  7. CenterOS 设置静态IP

    本文主要介绍这样再CenterOS 中设定静态IP. 工具 centerOS 6.9 步骤 执行命令:vi /etc/sysconfig/network-scripts/ifcfg-eth0 编辑,填 ...

  8. 更改package.js后重新加载

    node --save可有省略掉手动修改package.json的步骤   当你为你的模块安装一个依赖模块时,正常情况下你得先安装他们(在模块根目录下npm install module-name), ...

  9. find pattern

    daniel@daniel-mint ~/msf/metasploit-framework/tools $ ruby pattern_create.rb 2000 Aa0Aa1Aa2Aa3Aa4Aa5 ...

  10. interleave two text files with specified lines

    a_file=$1 a_step=$2 b_file=$3 b_step=$4 a_start=1 let a_end=$a_start+$a_step b_start=1 let b_end=$b_ ...