UiAutomator UiAutomator 2.0 中文输入问题

Hong · 2017年01月20日 · 最后由 Hong 回复于 2017年01月22日 · 1674 次阅读

看网上好多帖子都说 UiAutomator 2.0 不支持直接输入中文,需要借住 Utf7ImeHelper.e() 输入,但是我的测试结果是可以直接输入,用的是 QQ 输入法,或者是 Google 输入法也可以的,但是输入之后不知道怎样隐藏软键盘,希望大家指导下,谢谢。

//豌豆荚搜索框输入
UiObject search_edit = Constants.mDevice.findObject(new UiSelector().resourceId("com.wandoujia.phoenix2:id/search_container"));
search_edit.click();
BaseUtil.sleep(2000);
UiObject input = Constants.mDevice.findObject(new UiSelector().resourceId("com.wandoujia.phoenix2:id/search_sug_input"));
input.setText("Aa国國7#한に");
共收到 8 条回复 时间 点赞

按 back 键隐藏吧

Hong #2 · 2017年01月20日 Author

@264768502 按 back 键也可以,但前提是必须先调出软键盘,有些页面并没有给 EditText 设置焦点,可以直接 setText 输入内容而没有弹出软键盘,这个时候点 back 键就会有问题的。不知道有没有像 Robotium solo.hideSoftKeyboard(); 这样的方法。

可以直接输入中文的,可以试试发送一个向左的轨迹球事件。

—— 来自 TesterHome 官方 安卓客户端

#3 楼 @xdf 给力,竟然漏掉了这么篇好文,后续对字符转换输入就有通用处理方案了

—— 来自 TesterHome 官方 安卓客户端

早就知道了😏

Hong #7 · 2017年01月22日 Author

@xdf 谢谢你的文章,我现在想的是不切换系统的输入法或切换后在脚本跑完后能切回系统默认的输入法,UiAutomator 1.0 可以先获取到系统默认的输入法,在通过 adb shell 设置自己的输入法,跑完后再把默认输入法设置回去,但 UiAutomator 2.0 是个 Android 程序,系统不允许去修改默认的输入法(非 root 手机),只能通过其他的程序去修改输入法,比较麻烦

目前 Moto X(第二代)(5.1)、华为 Mate 7(6.0)、华为 TAG-AL00(5.1)、三星 S6(6.0.1)、魅族 MX5(5.0.1)手机可以直接输入,SONY(4.4.2)的手机就不行 ,这么看的话好像是 5.0 以上的系统可以直接输入

9楼 已删除
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册