模拟Android软键盘上的按键,用于移动测试(Appium+;Java)

模拟Android软键盘上的按键,用于移动测试(Appium+;Java),android,appium,ui-automation,android-testing,Android,Appium,Ui Automation,Android Testing,移动自动化:我有一个场景,我必须从android设备的软键盘发送击键(输入)(就像来自真实用户的输入)。我试过使用KeyEvent、SendKeys、androidkeycode、adb Shell输入、Keys。一切正常,但我没有看到任何字符从软键盘按下。请帮我找到解决办法 需要:您需要模拟屏幕键盘上的按键(使用driver.tap()) 问题是:无法获取屏幕键盘的Xpath或ID,这使我们陷入了困境 因为我在过去也遇到过同样的问题,所以我建议您创建一个函数来计算每个键的位置,并使用坐标按下它

移动自动化:我有一个场景,我必须从android设备的软键盘发送击键(输入)(就像来自真实用户的输入)。我试过使用KeyEvent、SendKeys、androidkeycode、adb Shell输入、Keys。一切正常,但我没有看到任何字符从软键盘按下。请帮我找到解决办法

需要:您需要模拟屏幕键盘上的按键(使用
driver.tap()

问题是:无法获取屏幕键盘的Xpath或ID,这使我们陷入了困境

因为我在过去也遇到过同样的问题,所以我建议您创建一个函数来计算每个键的位置,并使用坐标按下它

更清楚地说:

  • 获取你能找到的最低元素的坐标->键盘本身在它下面->我们现在可以知道键盘的高度
  • 获取屏幕的宽度
  • 现在,假设一共有4行(第一行是q,w,e…),我们将高度除以4。 假设您需要第一行中的一个键,它总共有10个键,现在将屏幕宽度除以10

    现在,您需要将每个键映射到其在一行中的位置。之后,为要按的每个键调用此函数


    我知道这很难看,你会有点挣扎,但我不知道你的问题的另一个解决方案

    嗨@RitzXavi,我试过使用adb外壳输入键事件7-->cmd,
    TouchAction().tap(x,y)
    驱动程序。按KEYCODE(AndroidKeyCode.KEYCODE_7)
    元素。sendkeys(“字符串”)
    。。所有方法都工作正常,但与软键盘上的真实用户输入不同..:-(感谢@David Ep为您提供的宝贵意见..让我试试,我会告诉您进展如何。。。