Я работаю над тестом пользовательского интерфейса для нескольких системных предупреждений подряд (например, видеоприложение для получения разрешения на камеру, микрофон и фотографии). В примере проекта кажется, что новый метод addUIInterruptionMonitorWithDescription
не работает в ландшафтном режиме.
Я наткнулся на этот пост Swift UI Test - Системное оповещение пользовательских уведомлений, но у меня дело обстоит иначе.
Мой код выглядит так:
let desc = "\u{201c}Alert\u{201d} Would Like to Access the Camera"
let app = XCUIApplication()
addUIInterruptionMonitorWithDescription(desc) { (alert) -> Bool in
let okButton = alert.buttons["OK"]
print(okButton.frame)
okButton.tap()
return true
}
app.buttons["Alert"].tap()
Это работает для портрета, а не для пейзажа. Дело может быть воспроизведено Симулятором и Устройством.
Более того, okButton.frame
, которое я получил в Портрете,
CGRect
▿ origin : CGPoint
- x : 207.0
- y : 387.666666666667
▿ size : CGSize
- width : 135.0
- height : 44.0
но кадр в Пейзаже показывает вот так
CGRect
▿ origin : CGPoint
- x : 143.333333333333
- y : 368.0
▿ size : CGSize
- width : 44.0
- height : 135.0
Ошибка сбоя теста, которую я получил, это
ошибка теста: -[AlertUITests testExample()] не удалось: ошибка тестирования пользовательского интерфейса - не удалось прокрутить до видимой (действием AX) кнопки 0x14df73840: черты: 8589934593, {{277.0, 345.0}, {46.0, 30.0}}, метка: ' Кнопка», ошибка: Ошибка -25204 при выполнении AXAction 2003
Есть идеи?
ИЗМЕНИТЬ 1
Представлено на Радар rdar://23931990
Dont Allow
, а в моем случае показывает ошибку с действием AX. - person Harry Ng   schedule 17.12.2015