Как реализовать условную проверку «если» в эспрессо отображается диалоговое окно с ошибкой - PullRequest
0 голосов
/ 24 июня 2018

Мне нужно выполнить условную проверку, «если» на экране в Espresso есть диалоговое окно с сообщением об ошибке. Ошибка появляется только тогда, когда пользователь вошел в систему с другого устройства. Если нажать кнопку «ОК», она продолжится.

Но в идеальном состоянии, если пользователь не «вошел в систему с другим устройством», я хотел бы обойти эту часть кода в Espresso, я имею в виду, как я могу поставить условие, что, если нет сообщения об ошибке появляется, продолжайте нормальную работу.

Вот снимок сообщения об ошибке и код эспрессо, где я проверяю наличие сообщения об ошибке и нажимаю «ОК», чтобы продолжить.

enter image description here

...
            //Check if the error message box displayed ?
            ViewInteraction message = onView(
                    allOf(withId(android.R.id.message),
                            withText("You are logged onto another PDT. Click OK to continue/ Utilisateur déjà connecté à un autre TDP. Cliquer OK pour continuer."),
                            childAtPosition(
                                    childAtPosition(
                                            withClassName(is("android.widget.contentPanel")),
                                            0),
                                    0),
                            isDisplayed()));

            //Click on the 'OK' button to continue
            ViewInteraction button2 = onView(
                    allOf(withId(android.R.id.button1),
                            withText("OK"),
                            childAtPosition(
                                    childAtPosition(
                                            withClassName(is("android.widget.LinearLayout")),
                                            0),
                                    2),
                            isDisplayed()));
            button2.perform(click());
....    

1 Ответ

0 голосов
/ 25 июня 2018

Попробуйте поместить код, который вы написали, в блок try / catch, чтобы зафиксировать исключение и предотвратить неудачу теста:

try {
    //Check if the error message box displayed ?
    ...
    //Click on the 'OK' button to continue
    ...
} catch (Exception e) {
    // The user is not logged anywhere else. Do nothing.
}
// Continue with the rest of the code of the ideal path

Таким образом, если диалоговое окно не отображается, оно фиксирует ошибку и код продолжает выполняться. Я сделал что-то подобное на этот раз и должен работать.

...