appium输入法踩坑解决方案-----中文乱码及输入法搜索无法点击

一、appium1.7.1 遇到的坑:

  1. 在写安卓的搜索用例脚本时,发现输入内容后,搜索出现在输入法键盘原来的确认位置,定位不到手机自带输入法的"搜索"键;

       2. 传入中文搜索,运行显示乱码英文字符;

  3. 百度类似问题,挺多的,中心思想就是一句:切换appium输入法到其他的输入法,比如搜狗,然后切换回来。可是,翻过来翻过去,手机上没有appium默认的输入法;

二、解决步骤:

  1. 找到appium输入法的安装包,我是win10系统,appium安装时是没有手动选择安装路径这一步骤的,一般默认安装在了:C:\Users\***(用户名)\AppData\Local\Programs\appium-desktop,appium默认输入法的包在  C:\Users\***(用户名)\AppData\Local\Programs\appium-desktop\resources\app\node_modules\appium\node_modules\appium-android-ime\bin\UnicodeIME-debug.apk,找到包后,使用adb install 包名给安装到手机上,设置手机默认输入法为appium输入法;

  2. 脚本设备参数中,设置如下,然后就可以输入中文了;  

caps['unicodeKeyboard'] = 'True'#使用Unicode编码方式发送字符串
caps['resetKeyboard'] = 'True'#隐藏键盘

  3. 解决了中文的问题,再来看输入法中搜索键定位问题了,首先在手机上安装第三方搜狗输入法;  

  4. 在搜索中输入中文关键字的这一步骤后(位置要放对),开始切换输入法:

import os

os.system("adb shell ime set com.sohu.inputmethod.sogou/.SogouIME")  # 从默认的appium输入法 切换到 搜狗输入法
time.sleep(3)
self.driver.press_keycode('66')  # 点击确认位置-搜索键
time.sleep(3)
os.system("adb shell ime set io.appium.android.ime/.UnicodeIME")  # 切换回appium输入法

    再次运行,就没有问题了。

posted @ 2019-07-29 14:13  青域  阅读(1546)  评论(0编辑  收藏  举报