Взаимодействие с пользовательским интерфейсом, не созданным вашим приложением, с помощью wix / detox

#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, чтобы отклонить / принять эти диалоги.

То, что я пробовал (и не смог заставить работать)

  1. Запуск на эмуляторе без play services. Сбой из-за интенсивного использования Firebase, останавливающий инициализацию приложения из-за отсутствия служб воспроизведения.
  2. Найдите резервный ReactView и попросите произвольно нажать на экран, где, как я знаю, находится кнопка OK; c.f. tapAtPoint({x:, y:})
  3. Отмените разрешение на наложение рисунка на com.google.gms . Оглядываясь назад, я никогда не собирался работать
  4. Попробуйте 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 ?