Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 检查对话框是否可见-浓缩咖啡_Java_Android_Android Espresso - Fatal编程技术网

Java 检查对话框是否可见-浓缩咖啡

Java 检查对话框是否可见-浓缩咖啡,java,android,android-espresso,Java,Android,Android Espresso,我在Stackoverflow上发现了类似于检查对话框是否可见的内容: onView(withText("Yes")) .inRoot(isDialog()) .check(matches(isDisplayed())) .perform(click()); 当然,如果按钮为“是”的对话框可见,则此操作有效,但在不同的场景中,如果对话框不可见,则我会崩溃: android.

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

 onView(withText("Yes"))
                    .inRoot(isDialog())
                    .check(matches(isDisplayed()))
                    .perform(click());
当然,如果按钮为“是”的对话框可见,则此操作有效,但在不同的场景中,如果对话框不可见,则我会崩溃:

android.support.test.espresso.NoMatchingViewException:中没有视图 发现与文本匹配的层次结构为“是”

那么,如何编写这样的语句:如果对话框存在,请单击“是”,如果对话框不存在,则不会单击任何内容?

您可以尝试以下方法:

  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.
onView(withText(“Yes”)).inRoot(isDialog()).withFailureHandler(newfailurehandler()){
@凌驾
公共无效句柄(可丢弃错误,匹配器-视图匹配器){
}
})。检查(匹配项(isDisplayed())。执行(customClick());
//如果对话框可见,请执行单击,否则不执行任何操作。