Java 安卓:按下键盘上的“完成”按钮

Java 安卓:按下键盘上的“完成”按钮,java,android,android-activity,appium,Java,Android,Android Activity,Appium,使用appium实现android应用程序自动化。无法单击手机键盘上显示的“完成”按钮。有人能帮忙吗?我们有什么方法可以使用ADB Shell命令单击Android phone done(安卓手机完成)按钮吗?似乎没有任何建设性的方法来单击设备键盘上的done(完成)或Next(下一步)按钮。因此,作为一个临时解决方案,我用两个手指点击“完成”按钮坐标,但这不是一个可行的解决方案。将等待appium在下一版本中对此进行修复。在我的Pixel 3上,我已通过以下命令使用adb自动点击搜索/下一步/

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

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

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

adb shell input tap 1070 1940
x、y坐标将根据您的设备而变化。要大致了解从何处开始,可以使用adb确定屏幕大小,然后从右下角向上移动。因此,在我的像素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_搜索(即84),它从版本1开始就出现在Android API中,但在我正在测试的应用程序上不起作用。不确定原因。

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

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

driver.pressKey(new KeyEvent(AndroidKey.ENTER));

您是否尝试过使用
KEYCODE\u ENTER
<代码>adb shell输入键代码66()是的,尝试过了,不起作用,它是用于输入的…我正在寻找“完成”按钮..它应该是这个:
标记编辑器操作
()标记编辑器操作的adb命令是什么?我尝试了“adb shell input keyevent FLAG\u EDITOR\u ACTION”,但似乎不起作用,即使KEYCODE\u 9的常量值为16,因此当我输入值为16的adb命令时,它正在按键盘上的“9”键。您能详细说明如何实现您的解决方案吗?或者仅仅是用两个手指敲击的手动动作?