#android #react-native #android-espresso #android-uiautomator #detox
#Android #react-native #android-espresso #android-uiautomator #детоксикация
Вопрос:
Я запускаю тесты пользовательского интерфейса на Android с помощью Wix’s Detox для проекта React Native. Библиотека работает очень хорошо, но испытывает трудности / не может обрабатывать системные диалоги или другие представления, не принадлежащие тестируемому инструментальному приложению. Вот раздражающее всплывающее окно с точностью определения местоположения из сервисов Google Play для иллюстрации;
Я подумываю переписать новый пакет в Kotlin, чтобы получить доступ к Android UiAutomator
API, который позволил бы мне находить любое произвольное представление, но хотел проверить здесь, есть ли что-то еще, что я могу сделать с Detox, чтобы отклонить / принять эти диалоги.
То, что я пробовал (и не смог заставить работать)
- Запуск на эмуляторе без play services. Сбой из-за интенсивного использования Firebase, останавливающий инициализацию приложения из-за отсутствия служб воспроизведения.
- Найдите резервный ReactView и попросите произвольно нажать на экран, где, как я знаю, находится кнопка OK; c.f.
tapAtPoint({x:, y:})
- Отмените разрешение на наложение рисунка на
com.google.gms
. Оглядываясь назад, я никогда не собирался работать - Попробуйте
device.pressBack()
в нужное время отклонить его, не ответив.
То, что сработало
- Повторное написание теста в Kotlin и доступ к
UiDevice
иUiSelector
API. - Избегайте как можно большего количества системных всплывающих окон, сгенерированных с помощью правил предоставления разрешений (настройка в
launchApp
вdetox
)
Я хотел бы остаться в стране detox…возможно, мне нужно обновить мою игру на JavaScript и отправить PR в репозиторий? Я должен признать, что это очень сложная библиотека…потребуется некоторая помощь, но охотно, если wix/detox
-er свяжется с вами.
Комментарии:
1. Подумав об этом еще немного, я вижу, что всплывающее окно имеет фокус … интересно, могу ли я отправлять команды ADB на вкладку, за которой следует команда «enter». Detox для Android был бы гибким, если бы был открыт
ADB()
объект, но, возможно, это противоречит духу library…re :DeviceDriver
абстракция. Эквивалент iOS был бы чем-то вродеxcrun
?