Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.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 如何使用Espresso framework单击上下文操作栏项_Java_Android_Android Actionbar_Android Espresso_Contextual Action Bar - Fatal编程技术网

Java 如何使用Espresso framework单击上下文操作栏项

Java 如何使用Espresso framework单击上下文操作栏项,java,android,android-actionbar,android-espresso,contextual-action-bar,Java,Android,Android Actionbar,Android Espresso,Contextual Action Bar,我正在编写一个测试用例,长时间单击我的ListView中的一个项目(由一个游标适配器支持),它将弹出一个上下文操作栏,并有一个允许用户删除该项目的菜单项 我使用以下代码: public void testDeleteFirstAccount(){ // Long click onData(is(instanceOf(Cursor.class))).atPosition(0).perform(longClick()); // Click delete menu item

我正在编写一个测试用例,长时间单击我的ListView中的一个项目(由一个游标适配器支持),它将弹出一个上下文操作栏,并有一个允许用户删除该项目的菜单项

我使用以下代码:

public void testDeleteFirstAccount(){
    // Long click
    onData(is(instanceOf(Cursor.class))).atPosition(0).perform(longClick());

    // Click delete menu item
    onView(withId(R.id.action_delete_account)).perform(click());

    // Find alert button with text
    onView(withText("Yes")).perform(click());
}
但是,我无法单击该按钮,因为我认为测试运行得太快了。我得到以下错误:

android.support.test.espresso.PerformException:执行时出错 id为的“单击查看”按钮: com.example.android.cashcartaker:id/action\u delete\u account'

原因:java.lang.RuntimeException:将不执行操作 因为目标视图与以下一项或多项不匹配 约束:至少90%的视图区域显示给用户 用户

我认为测试太快的原因是,如果在长时间单击后添加
Thread.sleep()
,一切都会正常工作。我这样做只是为了验证我的怀疑,我不确定这样停止UI是正确的前进方式

我还尝试添加
getInstrumentation().waitForIdleSync()
,但没有成功


我做错什么了吗?使用Espresso单击CAB项目的正确方法是什么?

可能在Espresso尝试单击ContextualActionBar项目时视图仍处于动画状态。如果设置了超时,动画将有时间完成,并且在执行单击时视图将完全显示


您是否尝试过在测试设备中禁用动画,如?

中所述?可能在Espresso尝试单击ContextualActionBar项目时视图仍处于动画状态。如果设置了超时,动画将有时间完成,并且在执行单击时视图将完全显示


您是否尝试过在测试设备中禁用动画,如?

中所述?我没有尝试关闭动画,但一旦关闭,一切都顺利通过。非常感谢。我没有尝试关闭动画,但一旦我做了,一切都很顺利。非常感谢。