Espresso UIObject.click () в приложении для возобновления работы с последними приложениями

#android #kotlin #android-espresso #android-uiautomator #uidevice

#Android #kotlin #android-espresso #android-uiautomator #uidevice

Вопрос:

Я пытаюсь выполнить тест пользовательского интерфейса espresso для приложения Android, который проверяет, существует ли сеанс после фонового запуска приложения, и снова запускает его

Я пытался использовать этот код

     val device = UiDevice.getInstance(getInstrumentation())
    device.pressHome()
    device.pressRecentApps()
    device.findObject(UiSelector().text(getInstrumentation().targetContext.getString(getInstrumentation().targetContext.applicationInfo.labelRes)))
            .click()
  

И он работал для устройств Android с SDK <29, но когда я попытался использовать его для SDK> = 29, он зависает, когда пытается щелкнуть приложение после нажатия на последнее приложение

Вот лог-код для сообщения об ошибке

 androidx.test.uiautomator.UiObjectNotFoundException: UiSelector[TEXT=My Application]
  

Комментарии:

1. Похоже, вы, по сути, пытаетесь проверить, что происходит в изменениях жизненного цикла. Рассмотрите возможность использования ActivityScenario для своих тестов вместо того, чтобы полагаться на UI Automator, чтобы вы могли более безопасно управлять событиями жизненного цикла.