Después de compilar mi aplicación en Xcode 11 y ejecutar mi conjunto de XCUITests, obtengo muchas fallas aleatorias con lo siguiente.
Error al obtener instantáneas coincidentes: error al obtener la ventana principal kAXErrorServerNotFound
No importa cuánto tiempo aumente los tiempos de espera, los problemas aparecen de forma intermitente. Parece estar teniendo problemas Instantáneas de la jerarquía de la interfaz de usuario. Nuestras pruebas pasan consistentemente en Xcode 10.
He reinstalado Xcode. Se eliminaron todos los simuladores. Datos derivados borrados. Tiempos de espera modificados. Actualizado de Xcode 11.1 a Xcode 11.2.1.
¡Gracias!
Respuestas:
Tuve el problema con la coincidencia mientras ejecutaba el simple UITest en Xcode 11.3. Para que funcione, tuve que pegar primero:
XCUIApplication().activate()
oXCUIApplication().launch()
.fuente
Experimenté el mismo problema con Xcode 11 y me di cuenta de que el corredor de prueba no se estaba matando al detener las pruebas (o si la prueba fallaba por alguna razón). La ejecución de las pruebas por segunda vez generaría un nuevo corredor de prueba y en ese momento tuve dos corredores que intentaban interactuar con la misma aplicación, lo que condujo a este error muy extraño.
Para demostrar que hice lo siguiente:
La solución consistía en salir y volver a abrir el simulador para asegurarse de que todos los procesos se estaban ejecutando. Espero que esto resuelva tus problemas
fuente
killall "Simulator" 2> /dev/null; xcrun simctl erase all
, ejecutar , o si usa fastlane, hay opciones en el escaneo para restablecer el simulador.Yo uso diferentes máquinas. Mis Macs anteriores experimentan este error con mucha más frecuencia. Supongo que las Mac más antiguas no tienen la memoria necesaria para ejecutar ciertos XCUITests correctamente.
fuente
Me encuentro con el problema de vez en cuando en Xcode 11.1. Observé que el problema ocurre cuando se esperan elementos de la interfaz de usuario, especialmente si se muestran vistas web durante la prueba. Cuando ocurrió el problema que estaba usando
XCUIElement.waitForExistence(timeout:)
o esperabaNSPredicate(format: "exists == true")
. Cuando cambié para usar las expectativas,NSPredicate(format: "hittable == true")
el problema parece haberse ido, pero no sé por qué. La diferencia entre los 2 atributos es quehittable
solo detecta elementos en pantalla mientrasexists
detecta elementos fuera de la pantalla, como las celdas fuera de la pantalla de una vista de tabla.fuente
Tuve un problema similar en Xcode 11.
Resultó que antes se le permitía tener el mismo identificador de accesibilidad en muchas páginas.
Pero ahora, usando el nuevo estilo de presentación modal, debe usar diferentes identificadores dentro de sus páginas para evitar conflictos.
fuente