使用appium进行Android应用程序自动化。无法单击手机键盘上显示的“完成”按钮。有人可以帮助我们使用ADB Shell命令点击Android手机完成按钮吗?
答案 0 :(得分:1)
在 Android 中,您不能直接点击键盘按键,除非您使用 Appium 坐标执行点击/点击操作,这并不总是可靠的。但是您可以使用 Appium 在 android 上模拟硬件键。
要按下(模拟)完成按钮,请使用以下代码:
driver.pressKey(new KeyEvent(AndroidKey.ENTER));
答案 1 :(得分:0)
看起来没有建设性的方法来点击设备键盘上的“完成”或“下一步”按钮。因此,作为临时解决方案,我在“完成”按钮坐标上用两根手指敲击,但这不是一个可行的解决方案。将等到appium在下一版本中为此修复此问题。
答案 2 :(得分:0)
在Pixel 3上,我通过以下命令使用adb自动点击了Search / Next / Done按钮:
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
这是所有必要的操作,因为我使用的搜索框是具有此XML属性的Android EditText,用于指示应将标准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中,但不适用于我正在测试的应用程序。不知道为什么。
答案 3 :(得分:0)
作为间接解决方案,我使用 key_event TAB (61) 将焦点切换到操作按钮,然后发送 key_event ENTER (66)
adb shell input keyevent 61
那么:
adb shell input keyevent 66