【发布时间】:2017-02-01 18:50:22
【问题描述】:
我正在尝试使用 UIAutomator 测试我公司的浏览器的俄语自动建议功能,但遇到了困难:
俄罗斯字母没有 KeyEvent.KeyCode_* 代码,UiDevice.pressKeyCode(KeyEvent.KEYCODE_LANGUAGE_SWITCH) 似乎没有帮助。我在 KeyEvent 类中找到的文档似乎表明我只需要使用与英文字母相同的 KeyCode,但它们会神奇地映射到其他语言的字母。然而,这似乎并没有真正发生,因为当我尝试这样做时,我仍然看到英文字母出现。
通常使用俄语我只使用 UiObject2.setText(...) 但该方法不会触发自动建议。
我尝试深入研究 UiDevice.pressKeyCode 正在做什么,并尝试了一些解决方法,例如:
KeyEvent eventsб2 = new KeyEvent(SystemClock.currentThreadTimeMillis(), "б", KeyCharacterMap.VIRTUAL_KEYBOARD, 0);
Instrumentation.sendKeySync(eventsб2);
或
KeyEvent[] eventsа = KeyCharacterMap.load(KeyCharacterMap.VIRTUAL_KEYBOARD).getEvents(new char[] {'a'});
Instrumentation.sendKeySync(eventsа[0]);
但是他们要么不输入字母,要么抛出关于需要 INJECT_EVENTS 权限的权限异常。总的来说,我感觉自己在黑暗中跌跌撞撞,希望得到一些关于如何继续的建议。
【问题讨论】:
标签: android android-uiautomator cyrillic