Estoy tratando de generar una UItest en Xcode. Cuando intento deslizar UIview, aparece un error:
Timestamped Event Matching Error: Failed to find matching element
Esto también sucede si intento tocar UIView.
Estoy tratando de generar una UItest en Xcode. Cuando intento deslizar UIview, aparece un error:
Timestamped Event Matching Error: Failed to find matching element
Esto también sucede si intento tocar UIView.
Respuestas:
fastlane
para tomar capturas de pantalla de un tableView. stackoverflow.com/a/39331154/4475605
isAccessibilityElement = true
Por lo general, este problema se observa cuando el elemento principal del elemento que desea registrar se establece en isAccessibilityElement = true. En general, debe tener el elemento principal establecido en falso para acceder al elemento secundario. Por ejemplo: si tiene un UILabel dentro de una vista, la accesibilidad debe establecerse en false para la vista y en true para UILabel.
En Xcode 9.3, donde aparentemente esto sigue siendo un problema, lo que hice fue:
Para grabar una nueva prueba, no creo que haya una solución todavía. Pero, si usa una extensión forzando el toque con una prueba que ya existe, funciona.
Ejemplo de uso:
extension XCUIElement {
func forceTapElement() {
if self.hittable {
self.tap()
}
else {
let coordinate: XCUICoordinate = self.coordinateWithNormalizedOffset(CGVectorMake(0.0, 0.0))
coordinate.tap()
}
}
}
func testSomethingWithCells() {
let app = XCUIApplication()
let cells = app.tables.cells
sleep(1)
cells.elementBoundByIndex(0).forceTapElement()
}
Puedes consultar la publicación original aquí:
Una solución que funcionó para mí fue identificar el objeto de manera diferente.
En Xcode 8 pude usar lo siguiente:
XCUIApplication().tables.cells["Camera Roll"].buttons["Camera Roll"].tap()
Con Xcode 9 obtuve el error mencionado en esta pregunta. Terminé usando lo siguiente, que funcionó (aunque más escamoso que la opción original)
XCUIApplication().cells.element(boundBy: 1).tap()