我需要执行条件检查“如果”,则Espresso的屏幕上存在错误对话框。仅当用户当前使用其他设备登录时,才会出现该错误。如果单击“确定”按钮,它将继续。
但是在理想情况下,如果用户未“使用其他设备登录”,我想绕过Espresso中的那部分代码,我的意思是,如果没有错误框,我该如何设置条件?出现,继续正常操作。
这是错误消息和Espresso代码的快照,我正在其中检查错误消息的存在,然后单击“确定”继续。.
...
//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());
....
答案 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
这样,如果对话框不可见,它将捕获错误,并且代码将继续执行。我之前做过类似的事情,应该可以。