PerformException:执行“单击”错误

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (61)

当我运行android espresso测试时出现错误:

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()));

我无法找到它发生的原因。

提问于
用户回答回答于

尝试确保没有显示软键盘。它可以通过closeSoftKeyboard ViewAction 轻松关闭。

此外,请确保禁用系统动画。在设置 - > 开发选项下关闭以下内容:

  • 窗口动画缩放
  • 过渡动画比例
  • 动画师持续时间比例

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

用户回答回答于

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

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}"

扫码关注云+社区

领取腾讯云代金券