Проверьте, виден ли диалог - Эспрессо - PullRequest
0 голосов
/ 17 ноября 2018

Я обнаружил в Stackoverflow нечто подобное о проверке, когда диалоговое окно видно:

 onView(withText("Yes"))
                    .inRoot(isDialog())
                    .check(matches(isDisplayed()))
                    .perform(click());

Конечно, это работает, если диалоговое окно с кнопкой «да» видно, но в другом сценарии, если диалоговое окно будет невидимым, я получил сбой:

android.support.test.espresso.NoMatchingViewException: Нет просмотров в найдено соответствие: с текстом: есть "Да"

Итак, как написать, что если диалоговое окно существует, нажмите «да», а если оно не существует, то ничего не будет щелкнуто?

1 Ответ

0 голосов
/ 17 ноября 2018

Вы можете попробовать это:

  onView(withText("Yes")).inRoot(isDialog()).withFailureHandler(new FailureHandler() {
            @Override
            public void handle(Throwable error, Matcher<View> viewMatcher){

            }
        }).check(matches(isDisplayed())).perform(customClick());

//if dialog is visible, perform click, otherwise do nothing.
...