android - tutorial - PerformException: error al realizar ''solo clic''
test ui android (7)
El error
fue causado por el bloqueo del hilo de la UI
de UI
. Verifique el target Activity code
, especialmente la función de setUp
o de init
.
Me he encontrado con el mismo error
, hay un listener
incorrecto en el hilo de la interfaz de usuario que siempre se llama. Cuando elimino el listener
, el error
podría ser arreglado.
Tengo un error cuando ejecuto la prueba de espresso de Android:
com.google.android.apps.common.testing.ui.espresso.PerformException: Error al realizar ''solo clic'' en la vista ''con id: es <2131034173>''.
Mi código es fácil:
onView(withId(R.id.btn)).perform(click());
Pero no hay error con este código:
onView(withId(R.id.btn)).check(matches(isDisplayed()));
No puedo encontrar la causa por la que sucedió.
El truco es leer el seguimiento completo de la pila del error. En el medio, hay una información crucial como esta:
Caused by: java.lang.RuntimeException: Action will not be performed because the target view does not match one or more of the following constraints:
at least 90 percent of the view''s area is displayed to the user.
Target view: "ImageView{id=2131492903, res-name=button_hamburger, desc=opens the side drawer, visibility=VISIBLE, width=64, height=64, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, root-is-layout-requested=false, has-input-connection=false, x=6.0, y=6.0}"
lo que explica el error en detalle.
Si la vista no está visible durante la prueba ... use perform(scrollTo())
... Se desplazará y haga clic en la acción.
Ejemplo: -
onView(withId(R.id.btn)).perform(scrollTo()).perform(click());
Tengo este mismo problema, pero la causa es:
Caused by: android.support.test.espresso.AppNotIdleException: Looped for 3713 iterations over 60 SECONDS. The following Idle Conditions failed .
No sé dónde está el problema, ya que hace clic en el botón que va a la siguiente actividad, pero parece que sigue buscando el botón después de
Trate de asegurarse de que el teclado virtual no se muestra. Se puede cerrar fácilmente con closeSoftKeyboard ViewAction.
Por otra parte, asegúrese de que las animaciones del sistema están deshabilitadas. En Configuración -> Opciones de desarrollo desactiva lo siguiente:
- Escala de animación de ventana
- Escala de animación de transición
- Escala de duración del animador
Además, esto puede deberse a los cuadros de diálogo ANR de otras aplicaciones.
También se ha reportado un problema here .
Tuve el mismo problema porque el teclado suave estaba superponiendo el elemento. Utilicé scrollTo () seguido de click () para resolver el problema.
onView(withId(R.id.btn))
.perform(scrollTo())
.perform(click());
Si lo anterior no funciona, intente agregar lo siguiente primero:
onView(withId(R.id.myEditText)).perform(closeSoftKeyboard());
Tuve el mismo problema, y lo resolví cambiando la posición del elemento.
No hay ningún elemento en la posición en la que estaba tratando de hacer clic. Intentando hacer clic en la posición 3, pero el elemento está en la segunda posición (Olvidé por completo que el índice comienza desde 0) Por lo tanto, cambié la posición del elemento y ahora funciona perfectamente.