[ADB密钥代码无法使用Android键盘搜索键与Enter键进行搜索

问题描述 投票:3回答:1

为什么发送搜索或输入键码时特定的文本字段/搜索栏为什么无法触发搜索?

  • 在Android键盘上,搜索键是否为带有元状态的Enter键?还是完全不同的密钥?
  • 搜索关键字的元态是什么?还是它自己的键码?
  • Android键代码KEYCODE_ENTER是否按下搜索键?还是KEYCODE_SEARCH

我和这个人有同样的问题,并提出了一个解决方案(如下):Unable to click the Search(magnifying glass) button in Android keyboard using Appium/Selenium/Java

虽然我的问题与之相关,但我的问题是Android键盘上搜索键的什么是元状态,而why却没有KEYCODE_ENTER工作?为什么KEYCODE_SEARCH不起作用?我不太在乎如何解决它,而更在乎[[why的发生(以便我自己修复)。

我正在尝试使用命令行/ appium通过adb与应用程序进行交互:

    adb shell input keyevent KEYCODE_ENTER
  • adb shell input keyevent KEYCODE_SEARCH
  • 示例

    例如,以google搜索栏小部件为例。回车键变成放大镜究竟发生了什么?我是黑匣子测试员,所以我无法访问正在使用的代码。

    按照这些步骤查看我在说什么:

      在Google搜索栏上轻按以专注于该领域并调出软键盘。
  • 注意,Google搜索栏更改了键盘以将Enter键显示为放大镜。
  • 输入文本“ birds”(不要打回车)。
  • 在命令行中,运行adb shell input keyevent KEYCODE_SEARCH
  • 观察到没有任何反应。这不是我们想要的行为。
  • 在命令行中,运行adb shell input keyevent KEYCODE_ENTER
  • 观察到我们看到了想要的行为,搜索就进行了。
  • 因此,如果我们有一个带有放大镜Enter键的文本字段,当用户发送KEYCODE_ENTER时,该字段会进行

    does n't

  • 的转换,这表示没有KeyEventListener用于该文本字段(例如Google搜索栏)上的KEYCODE_ENTER必须具有吗?如何修复?

    我想出的解决方法(但尚未通过测试,因为我无法访问代码)是,焦点所在的文本字段需要具有KeyEventListener作为KEYCODE_ENTER。是KeyEventListener可能无法工作的原因吗?还是应该监听KEYCODE_ENTER

    此问题有助于确认我的修复理论:KEYCODE_SEARCH

    请参阅以下图像,了解我正在谈论的键。“平板电脑输入密钥”“平板电脑搜索键”“电话输入键”“电话搜索键”“>

    为什么发送搜索或输入键码时特定的文本字段/搜索栏为什么不能触发搜索?在Android键盘上,搜索键是否为带有元态的Enter键?还是...

    android android-edittext adb appium android-softkeyboard
    1个回答
    0
    投票
    我想听应用程序中android键盘的键。您可以在服务或接收器中帮助解决此主题吗?
    © www.soinside.com 2019 - 2024. All rights reserved.