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输入法
再次运行,就没有问题了。