Как нажать кнопку "ОК" в диалоговом окне разрешений, которое требуется для доступа к фотографиям на iOS с помощью Xamarin.UITest?

Я использую Xamarin.UITest для выполнения автоматизации на iOS-приложении.

Проблема в том, что: при доступе к галерее для загрузки фотографии есть диалоговое окно с разрешениями, и мне нужно нажать кнопку "ОК", чтобы закрыть ее.

Следующие способы, которые я попробовал, но они не работали:

  • Использование команды дерева не показывает иерархию этого диалога, так что я не могу найти элемент пользовательского интерфейса для автоматизации

  • С помощьюiOSApp.InvokeUia("UIATarget.localTarget().frontMostApp().alert().buttons()[\"OK\"].tap()");Эта показанная ошибка:UIATarget.localTarget().frontMostApp().alert().buttons()["OK"] could not be tapped because the element is not visible tap@[native code]

  • С помощью app.TapCoordinateКажется, что он может работать, но нужно знать, правильная координата зависит от разных экранов и когда появляется диалоговое окно.

Есть ли решение для работы над этой проблемой? Благодарю.

3 ответа

Системные диалоги для разрешений выходят за рамки приложения и не отображаются в tree или любой другой запрос, который вы можете сделать через UITest. Вместо этого они обычно обрабатываются автоматически Calabash. "Автоматическое" поведение состоит в том, чтобы принять любой диалог разрешения, который появляется.

Ваш диалог на другом языке, где "ОК" может отображаться не на английском языке? Если это так, нам может потребоваться зарегистрировать проблему для этой конкретной локали, чтобы ее можно было реализовать.

Также убедитесь, что у вас установлена ​​последняя версия UITest. Посмотрите на изменения для iOS 10 и InvokeUia здесь.

Попробуйте это: target.frontMostApp().mainWindow().elements()[0].elements()[2].elements()[1].tap()

Если вы используете Repl(); в своем коде вы можете попытаться получить отметку для кнопки ОК с помощью команды дерева.

Если вы используете Visual Studio Entrerprise Edition, вы можете значительно упростить свои тесты с помощью Xamarin Test Recorder, он работает фантастически!

Еще одна вещь, которую следует отметить, это то, что тесты пользовательского интерфейса обычно делаются для скриншотов и проверок макета экрана, функциональность вашего должна быть протестирована с другим видом тестирования с другой структурой или инструментарием.

Другие вопросы по тегам