gpt4 book ai didi

android - 在 UiAutomator 测试中检测或抑制键盘

转载 作者:太空宇宙 更新时间:2023-11-03 10:19:02 25 4
gpt4 key购买 nike

在我的 UI 测试中,我将两个 UiObject 的文本设置在屏幕顶部附近,然后单击位于屏幕底部附近的第三个 UiObject。在某些设备上(例如我的运行 5.0 的 Nexus 6)这完美地工作。文本设置完毕,屏幕下方的UiObject依然可见,点击成功。

在其他设备上(例如我的运行 4.4 的 Nexus 4)调用 UiObjects 上的 setText 会调出软键盘,它会遮挡靠近屏幕底部的第三个 UiObject 并阻止它被点击。

我考虑过使用 UiDevice.pressBack()关闭键盘,但问题是键盘显示在某些设备上而不是其他设备上。在不显示键盘的设备上按回会导致其他行为导致测试失败。

我也考虑过使用 UiDevice.pressEnter()作为解决方案。我认为如果键盘可见,这将关闭键盘,如果不可见,则不执行任何操作(两全其美)。问题是,UiAutomator 在运行我的测试时显示的键盘没有“输入”按钮,它有一个“下一步”按钮。这与我在代码中设置实际 UI 元素的方式相反。当我手动测试时,键盘会按预期显示“输入”按钮。但是,由于 UiAutomator 看到的是“下一步”按钮,这就是它正在执行的功能。焦点只是传递到下一个 UiObject,键盘仍然可见。

所以我想做的是在键盘可见时关闭键盘,如果键盘不可见则不冒险按下后退按钮。有没有办法确定它是否显示?或者更好的是,从一开始就不要展示它?

最佳答案

不同的设备有不同的封装,键盘功能也可能不同。
因此,细节可能并不完全相同。

下面列出的步骤在我的设备上的 Android 4.0+ 中是成功的:

  1. 禁用与键盘输入法相关的包。

    这里列出了命令:

    adb root
    adb shell pm disable com.google.android.apps.inputmethod.hindi
    adb shell pm disable com.google.android.inputmethod.korean
    adb shell pm disable com.google.android.inputmethod.pinyin
    adb shell pm disable com.google.android.inputmethod.latin
    adb shell pm disable jp.co.omronsoft.iwnnime.ml
    pause

    注意:设备中可能不存在某些包名称,如“com.google.android.inputmethod.pinyin”。使用此命令检查:

    adb shell pm list packages inputmethod
  2. 禁用“Google 语音输入”

    “Google 语音输入”仍然可以弹出键盘。

    如果你想禁用键盘:

    转到设置 → 应用程序 → 运行(或全部)→“谷歌键盘”→ 设置 → 禁用“谷歌语音输入”。

注意:如果你想启用键盘,运行命令如下:

adb shell pm enable com.google.android.inputmethod.latin

关于android - 在 UiAutomator 测试中检测或抑制键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28311511/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com