Soft teclado no está presente, no se puede ocultar el teclado – Appium android

Estoy recibiendo la siguiente excepción:

org.openqa.selenium.WebDriverException: An unknown server-side error occurred while processing the command. (Original error: Soft keyboard not present, cannot hide keyboard) (WARNING: The server did not provide any stacktrace information) Command duration or timeout: 368 milliseconds 

Estoy utilizando driver.hideKeyboard () para ocultar el teclado de entrada suave que está abierto en la pantalla.
¿Cómo asegurarse de que el teclado está abierto antes de ocultarlo? O cualquier otra solución?

Utilice el comando adb para comprobar si el teclado ha aparecido o no

 adb shell dumpsys input_method | grep mInputShown Output : mShowRequested=true mShowExplicitlyRequested=false mShowForced=false mInputShown=true 

Si mInputShown=true entonces sí el teclado del software ha aparecido. A continuación, utilice driver.pressKeyCode(AndroidKeyCode.BACK);

Una forma de usar java es

 Process p = Runtime.getRuntime().exec("adb shell dumpsys input_method | grep mInputShown"); BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream())); String outputText = ""; while ((outputText = in.readLine()) != null) { if(!outputText.trim().equals("")){ String keyboardProperties[]=outputText.split(" "); String keyValue[]=keyboardProperties[keyboardProperties.length-1].split("="); String softkeyboardpresenseValue=keyValue[keyValue.length-1]; if(softkeyboardpresenseValue.equalsIgnoreCase("false")){ isKeyboardPresent=false; }else{ isKeyboardPresent=true; } } } in.close(); 

PS: No utilice driver.navigate().back() ya que su comportamiento puede no ser el mismo en todos los dispositivos.

También consigo este error, lo corrijo usando el código siguiente en el método del setUp:

 capabilities.setCapability("unicodekeyboard", true); capabilities.setCapability("resetkeyboard", true); 

Puede comprobar las respuestas aquí: El teclado en el dispositivo físico Android no siempre se oculta mientras se utiliza Appium

  • ProviderTestCase2.getProvider () es nulo
  • ¿Cómo crear sombras personalizadas en robolectric 3.0?
  • Cómo probar la aplicación empresarial android en varios dispositivos
  • Saltar prueba para la variante de construcción específica en Android + Gradle?
  • Prueba de un servicio de accesibilidad de Android?
  • Carpeta de activos en Android Studio Unit Test
  • Deshabilitar eventos a nivel de sistema en Android mono
  • Espresso prueba pegado / inactivo después de realizar (haga clic ()) en el botón en ViewAnimator
  • IsolatedContext vs AndroidTestCase.getContext ()
  • ¿Cómo puedo ejecutar el código en el hilo de la interfaz de usuario en una prueba de Android JUnit sin una actividad?
  • ¿Por qué no hay instrumentación de prueba para BroadcastReceiver?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.