检查对话框是否可见-Espresso

时间:2018-11-17 12:10:24

标签: java android android-espresso

我在Stackoverflow上发现了类似于检查对话框何时可见的内容:

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

当然,如果显示带有“ yes”按钮的对话框,这是可行的,但是在不同情况下,如果对话框不可见,则会崩溃:

  

android.support.test.espresso.NoMatchingViewException:中没有视图   找到匹配的层次结构:带有文本:是“是”

那么,如果对话框存在,请单击“是”,如果不存在,则不会单击任何内容,怎么写?

1 个答案:

答案 0 :(得分:1)

您可以尝试以下方法:

  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.