我正在编写一个测试来检测 android 键盘的预测部分是否被禁用。 通常为了检测这些事情,我会在 UI 自动操作中截取 XML 屏幕截图,然后使用资源 ID 来检测它,但由于键盘被记录为叠加层,它不会显示。
我使用资源 ID 创建字符串并像这样实例化它们:
UiObject incidentClick = uiDevice.findObject(new
UiSelector().resourceId(UIResourceStrings.This_Is_The_Resource_String));
但是,这不起作用,因为键盘没有自己的资源字符串。
我已经考虑过使用 (x,y( 坐标进行检查,但我不确定我将如何实现它。关于如何做这样的事情的任何想法?
不是一个完整的解决方案,而是一个解决方法。我首先获取了文本的值,然后有一个 click(x,y( 函数单击出现其中一个建议的空间,然后首先获取文本的值并检查它们是否相同。如果不是,则键盘预测器已启用,测试将失败。
只是一个注释,预测器应该给出与原始单词不同的单词。因此,如果您的文本 == uiDevice.findObject(new UiSelector().text("text"));
如果你使用 UiAutomator 2.0,你可以在你的情况下执行 adb shell 命令并获得键盘状态,就像这样很容易,
"adb dumpsys input_method |grep mInputShow"
当 mInputShow 的值为 true 时,键盘将打开。