Espresso – typeText no funciona

Estoy tratando de escribir algún texto dentro de un EditText:

public void testSearch() { onView(withId(R.id.titleInput)).perform(typeText("Engineer")); onView(withId(R.id.titleInput)).check(matches(withText("Engineer"))); } 

Veo que el EditText está consiguiendo el foco, pero no sucede nada. No se escribe ningún texto.
He intentado esto en un teléfono y un emulador – mismo resultado.

Parece que he descubierto el problema. Tenía que ver con el teclado del hardware contra el software.

Para Emuladores:

Vaya a Ajustes -> Idioma e introducción -> cambiar la entrada predeterminada al teclado de muestra.

Para teléfonos:

Instale un teclado de software desde Play Store y cambie a él. Parece que los teclados nativos de algunos teléfonos no funcionan.

Ahora funciona.

Puede omitir el problema llamando a setText en el EditText.

  final EditText titleInput = (EditText) activity.findViewById(R.id.titleInput); getInstrumentation().runOnMainSync(new Runnable() { public void run() { titleInput.setText("Engineer"); } }); 

Si EditText no tiene el foco todavía, debe hacer clic en él primero. Si esto soluciona su problema, entonces no hay ningún error.

 onView(withId(R.id.titleInput)).perform(click()).perform(typeText("Engineer")); 

Tenía el mismo problema usando Espresso 2. Como solución, estoy usando replaceText en lugar de typeText.

 public void testSearch() { onView(withId(R.id.titleInput)).perform(click(), replaceText("Engineer")); onView(withId(R.id.titleInput)).check(matches(withText("Engineer"))); } 

Se puede incluir en el código como este,

OnView (withId (R.id.titleInput)). Realiza (click (), replaceText ("Engineer"), closeSoftKeyboard ());

Si está utilizando Genymotion, puede que necesite cambiar el teclado predeterminado en Genymotion Configuration (es una aplicación en el emulador).

  1. Ir a Apps -> Configuración de Genymotion -> Teclado -> Teclado virtual (haga clic en "Sí" cuando se le pida reiniciar)

NOTA: Estos cambios no persisten después de cerrar el emulador. Deberá configurarlo cada vez que inicie el emulador.

  • Prueba de desplazamiento sin fin RecyclerView con Espresso y RxJava
  • IncompatibleClassChangeError: android.support.design.internal.NavigationMenuView
  • ¿Cómo probar una Actividad específica con Espresso?
  • Prueba de Snackbar con Espresso
  • Cómo realizar varias pruebas en Android afirmando brindis
  • Prueba de interfaz de usuario de Android Fingerprint con Espresso
  • Archivo de clase para android.support.v4.widget.DrawerLayoutImpl no se encuentra en travis support-v4 21.0
  • Cómo probar los valores de TextInputLayout (sugerencia, error, etc.) usando Android Espresso?
  • Android - Espresso - desplazamiento a un elemento no listado Ver
  • Cómo utilizar Espresso Idling Resource para llamadas de red
  • Cargando imagen de forma sincrónica con Glide
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.