有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Android:按键盘上的“完成”按钮

使用appium实现安卓应用程序自动化。无法点击手机键盘上显示的“完成”按钮。有人能帮忙吗?我们可以用ADB Shell命令点击Android phone done按钮吗


共 (4) 个答案

  1. # 1 楼答案

    似乎没有建设性的方法来单击设备键盘上的“完成”或“下一步”按钮。因此,作为一个临时解决方案,我用两个手指点击“完成”按钮坐标,但这不是一个可行的解决方案。将等待appium在下一版本中对此进行修复

  2. # 2 楼答案

    作为间接解决方案,我使用按键事件选项卡(61)将焦点切换到动作按钮,然后发送按键事件输入(66)

    adb shell input keyevent 61
    

    然后:

    adb shell input keyevent 66
    
  3. # 3 楼答案

    在安卓系统中,只有在使用Appium坐标执行点击/点击操作时,才能直接点击键盘键,但这并不总是可靠的。但你可以用Appium在android上模拟硬件按键

    要按(模拟)完成按钮,请使用以下代码:

    driver.pressKey(new KeyEvent(AndroidKey.ENTER));
    
  4. # 4 楼答案

    在我的Pixel 3上,我通过以下命令使用adb自动点击搜索/下一步/完成按钮:

    adb shell input tap 1070 1940
    

    x,y坐标会因设备而异。要大致了解从何处开始,可以使用adb确定屏幕大小,然后从右下角开始向上移动。所以,在我的Pixel 3上,我使用这个adb命令来确定窗口大小:

    adb shell wm size
    

    这给了我这个输出:“物理尺寸:1080x2160”。我从右边移动了10个像素,从底部向上移动了180个像素,得到了适用于我的“1070 1940”x,y坐标

    现在我可以在文本字段中输入搜索字符串,并模拟在软键盘上点击搜索键,如下所示:

    adb shell input text searchterm && adb shell input tap 1070 1940
    

    这一切都是必要的,因为我使用的搜索框是一个Android EditText,带有此XML属性,以指示标准的Enter键应替换为搜索图标:

    android:imeOptions="actionSearch"
    

    如果不是这样的话,我相信我可以发送Enter键的标准KeyEvent:

    adb shell input keyevent 66
    

    启用IME搜索选项后,我相信您必须发送KeyEvent。KEYCODE_ENTER(即66)以及FLAG_EDITOR_ACTION(掩码值为16),但adb shell输入似乎不支持添加标志

    我尝试过发送KEYCODE_SEARCH(即84),它从版本1开始就出现在Android API中,但在我正在测试的应用程序上不起作用。不知道为什么