Для тестирования пользовательского интерфейса моего приложения я должен включить / отключить iCloud.Я делаю это, запустив приложение «Настройки» в моем тесте, перейдя к сцене Apple ID и коснитесь там ячейки iCloud (см. Изображение ниже).
В моем тесте я проверяю, существует ли ячейка iCloud и доступна ли она для чтения.Только тогда я нажимаю на ячейку:
// when
let iCloudCell = settingsApp.tables.cells["iCloud"]
let iCloudCellFound = iCloudCell.waitForExistence(timeout: 10)
// then
XCTAssert(iCloudCellFound, "iCloud settings not found")
XCTAssert(iCloudCell.isHittable, "iCloud settings not hittable")
// when
iCloudCell.tap()
Это работает большую часть времени, но время от времени тест останавливается на iCloudCell.tap()
с журналом
t = 113.74s Find: Descendants matching type Table
t = 113.74s Find: Descendants matching type Cell
t = 113.74s Find: Elements matching predicate '"iCloud" IN identifiers'
t = 113.85s Synthesize event
t = 113.97s Assertion Failure: <unknown>:0: Failed to determine screen point of "iCloud" Cell: Error copying attributes -25202
РЕДАКТИРОВАТЬ: При возникновении этой ошибки отображается только сценарий Apple ID.Никаких предупреждений и других представлений.
Мой вопрос таков: как может получиться, что в ячейку можно попасть, но невозможно определить точку экрана?И какой может быть обходной путь?