Appium appium 中输入中文后切换输入法将软件盘调出以便点击搜索疑问

玻璃夕阳 · June 16, 2015 · Last by luweicheng2009 replied at August 05, 2015 · 1704 hits

最近在学习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中如何点击隐藏在软件盘中的搜索按钮,请问大神们有什么方法?

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

共收到 4 条回复 时间 点赞

添加头像,
记得用md

尝试直接用 adb shell input keyevent 66调试一下吧,我这边用appium的输入法,然后直接从命令行输入keyevent是能够调通的。

@anikikun ,在软键盘被调出的情况下,我cmd执行adb shell input keyevent 66,可以搜索,但是appium是没有软键盘的啊,必须把键盘调出来,按keyevent66才可以。

请问下excuteAdbShell这个函数是哪个类里的?

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up