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?
- La forma más rápida de probar el código fuente de Android modificado?
- Android Marshmallow Permisos de Pruebas
- ¿Cómo puedo comprobar en Robotium que la aplicación ha terminado?
- Uso de la actividad de no producción para probar con Android Studio
- Destruye y reinicia la actividad con la biblioteca de soporte de pruebas
- ¿Cómo puedo ejecutar una sola prueba con gradle android
- ClassNotFoundException durante el instrumento de prueba de Android
- Problema con Android IAP, sin OrderID en el objeto de compra
- ¿Cómo probar la función de sincronización de ejecución en android?
- Escribir / crear archivos dentro del contexto de la instrumentación de Android
- Prueba de Android fuera del espacio de almacenamiento
- ¿Cómo puedo obtener identificadores, nombres o rutas x para elementos ui utilizados en una aplicación para móviles (Android / iOS) para pruebas de automatización móvil?
- Java y la metodología de prueba de Android
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
- ContactsContract para enumerar todos los campos disponibles?
- ¿Cómo usar e importar eSpeak en eclipse?