最近在学习 appium,连接真机,因为想让其输入中文,故设置了:
capabilities.setCapability("unicodeKeyboard", "True");
capabilities.setCapability("resetKeyboard", "True");

而当在输入框输入中文后,搜索在软键盘中,而 appium 自己得输入法没有 UI,所以想切换输入法,代码思路如下:

//在输入框中输入 “国美第一城”
driver.findElementById("com.fangzhur.app:id/findedt").sendKeys("国美第一城");
Thread.sleep(5000);
//使用 adb shell 切换输入法 - 更改为搜狗输入法
excuteAdbShell("adb shell ime set com.sohu.inputmethod.sogou/.SogouIME");
//再次点击输入框,调取键盘,搜狗键盘被成功调出。
driver.findElementById("com.fangzhur.app:id/findedt").click();
//点击右下角的搜索,即 ENTER 键
Thread.sleep(10000);
((AndroidDriver) driver).sendKeyEvent(AndroidKeyCode.ENTER);
//再次切回 输入法键盘为 Appium unicodeKeyboard,方便下次输入中文
excuteAdbShell("adb shell ime set io.appium.android.ime/.UnicodeIME");

但是在 debug 过程中,执行
excuteAdbShell("adb shell ime set com.sohu.inputmethod.sogou/.SogouIME");
时,DDMS 显示如下:
[2015-06-16 14:38:07 - DeviceMonitor] Adb connection Error:远程主机强迫关闭了一个现有的连接。
[2015-06-16 14:38:12 - DeviceMonitor] Adb connection Error:远程主机强迫关闭了一个现有的连接。
[2015-06-16 14:38:13 - DeviceMonitor] Connection attempts: 1
[2015-06-16 15:00:52 - DeviceMonitor] Adb connection Error:远程主机强迫关闭了一个现有的连接。
[2015-06-16 15:00:53 - DeviceMonitor] Connection attempts: 1
[2015-06-16 15:00:57 - DeviceMonitor] Adb connection Error:远程主机强迫关闭了一个现有的连接。
[2015-06-16 15:00:58 - DeviceMonitor] Connection attempts: 1

当自己手动 cmd 执行 adb shell ime set com.sohu.inputmethod.sogou/.SogouIME 时,可以切换成功。
尝试输入 keyEvent(66),真机没有反应。

关于在 APPIUM 中如何点击隐藏在软件盘中的搜索按钮,请问大神们有什么方法?

另特别感谢群里的大神们,不管我问多么白痴的问题,都有人教我,很感谢大家。


↙↙↙阅读原文可查看相关链接,并与作者交流