从 Android 软键盘模拟击键以进行移动测试(AppiumJava)

Simulate keyStrokes from Android SoftKeyboard for Mobile Testing(Appium+Java)

Input action should happen like this移动自动化:我有一个场景,我必须从 android 设备的 SoftKeyboard 发送击键(输入)(就像来自真实用户的输入)。我尝试使用 KeyEvent、SendKeys、androidkeycode、adb Shell input、Keys。一切正常,但我没有看到从软键盘按下的任何字符。请帮我解决这个问题。!!

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

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

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

更清楚:

  1. 获取你能找到的最低元素的坐标 -> 键盘本身在它下面 -> 我们现在可以知道键盘的高度。
  2. 获取屏幕的宽度

现在,假设您总共有 4 行(第一行是 q、w、e..),所以我们将高度除以 4。 假设您想要第一行的一个键,总共有 10 个键,现在将屏幕宽度缩小 10。

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

我知道它很丑陋,你会有点挣扎,但我不知道你的问题的另一种解决方案。