如何实施条件检查“如果”,则在Espresso中显示错误对话框

时间:2018-06-24 17:30:23

标签: android-espresso

我需要执行条件检查“如果”,则Espresso的屏幕上存在错误对话框。仅当用户当前使用其他设备登录时,才会出现该错误。如果单击“确定”按钮,它将继续。

但是在理想情况下,如果用户未“使用其他设备登录”,我想绕过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 :(得分:1)

尝试在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

这样,如果对话框不可见,它将捕获错误,并且代码将继续执行。我之前做过类似的事情,应该可以。