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()
,因为它在所有设备上的行为可能不尽相同。
当我想隐藏键盘时,(因为如果我在点击键盘下方的按钮时不隐藏它,则会按下键盘上的数字而不是确认按钮)有时它可以隐藏命令 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()
,因为它在所有设备上的行为可能不尽相同。