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"))); }
- Android Espresso: ¿Cómo comprobar que el mensaje Toast no se muestra?
- Cómo ejecutar Prueba Travis-CI y Espresso
- Prueba Espresso que ImageView contiene un dibujable
- 'Android.support.test.espresso no existe' cuando quiero usarlo para una prueba individual de apk
- Desinstalar la aplicación antes de iniciar la prueba
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.
- Cómo verificar IntentService start
- Espresso - typeText () no funciona correclty, a veces faltan letras
- Prueba de un ViewPager y TabPageIndicator con Espresso
- Espresso y recogedor de cuenta Android
- RunTimeException en Android espresso cuando se selecciona el dial de spinner
- Android Espresso ListView haga clic en el elemento
- Java.lang.IncompatibleClassChangeError al incluir espresso-contrib: 2.0
- Mientras se ejecuta una prueba de Espresso utilizando el estudio de Android. Obtuve el siguiente error
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).
- 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.
- No se puede abrir la base de datos en la aplicación de prueba de Android
- Android: La tabla no tiene ninguna columna llamada "nombre de variable" MySql Error de base de datos