Я пытаюсь автоматизировать создание скриншотов своего приложения с помощью Snapshot, и все идет хорошо, пока я не захочу для навигации по UIImagePickerController
, который установил allowsEditing
на true
.
Странно то, что в симуляторах iPhone 4s, 5s и 6s все работает нормально, но в iPhone 6(s) ) Кроме того, тест не может нажать кнопку «Выбрать» («Kies» на голландском языке) в режиме обрезки.
Моя первая попытка не работала ни в одной версии:
app.buttons.elementBoundByIndex(2).tap()
И привел к следующей ошибке:
file:///%3Cunknown%3E: сбой теста: -[MyAppSnapshots testExample()] не удалось: сбой тестирования пользовательского интерфейса - не удалось прокрутить до видимой (действием AX) кнопки 0x7f82d450ae30: черты: 8589934593, {{327.0, 613.5}, {35.0, 34.0}}, метка: "Kies", ошибка: Ошибка -25204 при выполнении AXAction 2003
Затем из этого ответа я взял решение forceTapElement
, которое работает на всех, кроме iPhone 6(s) Plus. эм>.
app.buttons.elementBoundByIndex(2).forceTapElement()
Затем я попытался нажать на координату;
let window = app.windows.elementBoundByIndex(0)
let rightBottom = window.coordinateWithNormalizedOffset(CGVectorMake(
CGRectGetWidth(window.frame) - 20,
CGRectGetHeight(window.frame) - 20
))
rightBottom.tap()
Но это снова не сработало ни на одном из устройств.
Итак, как мне протестировать эти родные интерфейсы? Или я должен просто добавить какой-то переключатель в свой код, чтобы UIImagePickerController
заменялся чем-то неинтерактивным.