Saya mencoba untuk menghasilkan UItest di Xcode. Ketika saya mencoba menggesek UIview, saya mendapatkan kesalahan:
Timestamped Event Matching Error: Failed to find matching element
Ini juga terjadi jika saya mencoba mengetuk UIView.
Saya mencoba untuk menghasilkan UItest di Xcode. Ketika saya mencoba menggesek UIview, saya mendapatkan kesalahan:
Timestamped Event Matching Error: Failed to find matching element
Ini juga terjadi jika saya mencoba mengetuk UIView.
Jawaban:
fastlane
untuk mengambil screenshot dari tableView. stackoverflow.com/a/39331154/4475605
isAccessibilityElement = true
Biasanya masalah ini teramati ketika elemen induk dari elemen yang ingin Anda rekam disetel ke isAccessibilityElement = true. Secara umum, Anda harus menyetel elemen induk ke false untuk mengakses elemen anak. Misalnya: jika Anda memiliki UILabel di dalam tampilan, aksesibilitas harus disetel ke false untuk tampilan tersebut dan disetel ke true untuk UILabel.
Di Xcode 9.3, di mana ini tampaknya masih menjadi masalah, yang saya lakukan adalah:
Untuk merekam pengujian baru, saya rasa belum ada solusinya. Tapi, jika Anda menggunakan ekstensi yang memaksa ketuk dengan tes yang sudah ada, berfungsi.
Contoh penggunaan:
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()
}
Anda dapat memeriksa postingan aslinya di sini:
Solusi yang berhasil untuk saya sendiri adalah mengidentifikasi objek secara berbeda.
Di Xcode 8 saya dapat menggunakan yang berikut ini:
XCUIApplication().tables.cells["Camera Roll"].buttons["Camera Roll"].tap()
Dengan Xcode 9 saya mendapatkan kesalahan yang disebutkan dalam pertanyaan ini. Akhirnya menggunakan yang berikut, yang berfungsi (al beit lebih rapuh daripada opsi asli)
XCUIApplication().cells.element(boundBy: 1).tap()