Android 物理设备中的键盘在使用 Appium 时并不总是隐藏

Keyboard in Android physical device isn’t always hidden while using Appium

当我想隐藏键盘时,(因为如果我在点击键盘下方的按钮时不隐藏它,则会按下键盘上的数字而不是确认按钮)有时它可以隐藏命令 driver.hidekeyboard(); 有时会自动隐藏。

其他时候它告诉我

An unknown server-side error occurred while processing the command. (Original error: Soft keyboard not present, cannot hide keyboard)

@Emna 在输入隐藏键盘的两个字段后尝试不起作用。 driver.navigate().back(); 或将其包装为

public void clickDeviceBackButton(){
        driver.navigate().back();
    }

并在您的测试用例中调用 clickDeviceBackButton()

尝试在页面上找到一个静态 Text/link 元素,并在那里找到 .click()。这解雇了键盘。

尝试在模拟器和实时设备上工作时遇到了类似的问题。一个显示了键盘,另一个没有。所以 driver.hideKeyboard(); 过去常常因后者而失败。只需确保键盘在两种情况下都会出现然后隐藏。

driver.getKeyboard();
driver.hideKeyboard();

这对我来说很好用。希望对你有帮助。

使用adb命令查看键盘是否弹出

adb shell dumpsys input_method | grep mInputShown 

输出:mShowRequested=true mShowExplicitlyRequested=false mShowForced=false mInputShown=true

if mInputShown=true then yes 软件键盘已经弹出。 然后使用 driver.pressKeyCode(AndroidKeyCode.BACK);

PS:请不要使用 driver.navigate().back(),因为它在所有设备上的行为可能不尽相同。