PerformException:执行“单击”错误

当我运行android espressotesting时出现错误:

com.google.android.apps.common.testing.ui.espresso.PerformException:错误执行单击'视图'与id:是<2131034173>'。

我的代码很简单:

onView(withId(R.id.btn)).perform(click()); 

但是这个代码没有错误:

 onView(withId(R.id.btn)).check(matches(isDisplayed())); 

我找不到原因。

诀窍是读取错误的完整堆栈跟踪。 在中间,有这样一些重要的信息:

 Caused by: java.lang.RuntimeException: Action will not be performed because the target view does not match one or more of the following constraints: at least 90 percent of the view's area is displayed to the user. Target view: "ImageView{id=2131492903, res-name=button_hamburger, desc=opens the side drawer, visibility=VISIBLE, width=64, height=64, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, root-is-layout-requested=false, has-input-connection=false, x=6.0, y=6.0}" 

这就详细解释了错误。

尝试确保软键盘不显示。 它可以通过closeSoftKeyboard ViewAction轻松closures。

此外,请确保系统animation已禁用。 在设置 – > 开发选项下closures以下内容:

  • 窗口animation比例
  • 过渡animation比例
  • animation师持续时间比例

另外,这可能是由其他应用程序的ANR对话引起的。

这里也报道了一个问题。

我有同样的问题,因为软键盘重叠的元素。 我用scrollTo(),然后点击()来解决问题。

 onView(withId(R.id.btn)) .perform(scrollTo()) .perform(click()); 

如果上述不起作用,请尝试添加以下内容:

 onView(withId(R.id.myEditText)).perform(closeSoftKeyboard()); 

如果视图在testing过程中不可见…使用perform(scrollTo()) …它将滚动并单击动作将perfrom。

例如: –

  onView(withId(R.id.btn)).perform(scrollTo()).perform(click()); 

我有同样的问题,但原因是:

 Caused by: android.support.test.espresso.AppNotIdleException: Looped for 3713 iterations over 60 SECONDS. The following Idle Conditions failed . 

我不知道问题出在哪里,因为它点击进入下一个活动的button,但是看起来它仍然在为button进行研究

error是由UI线程块造成的。 请检查您的target Activity code ,特别是setUpinit函数。

我遇到了同样的error ,在UI线程中有一个总是被调用的错误的listener 。 当我删除listenererror可能会被修复。