【问题标题】:Espresso doesn't perform click on dialogEspresso 不执行点击对话框
【发布时间】:2020-12-16 12:31:38
【问题描述】:

Espresso 不执行单击此代码生成的用于启用 GPS 的对话框:

rae.startResolutionForResult(
  context,
  Constants.GPS_REQUEST
)

我还没有创建这个对话框,所以它不是我的“屏幕”或“应用程序”的一部分,它是由系统或请求解决 gps 分辨率生成的。

所以我检查是否启用了 gps,如果没有,那么这是我按下它的代码行:

onView(withText("OK")).perform(click())

但它不起作用,因为它看起来像 Espresso 一直在等待某些事情发生,然后它单独崩溃: androidx.test.espresso.NoActivityResumedException: No activities in stage RESUMED. Did you forget to launch the activity. (test.getActivity() or similar)?

如果我在withText("Random words sjdj") 上设置随机单词也没关系,因为“它正在等待”

我考虑过单击坐标,但由于高度和宽度的原因,这看起来像是一个不稳定的测试,并且可能根本不准确(我说它是出于无知)并且可能无法正常工作,因为 espresso 正在等待.

编辑 1:

如果我等到测试自行停止,它会抛出下一个错误:

androidx.test.espresso.NoActivityResumedException: No activities in stage RESUMED. Did you forget to launch the activity. (test.getActivity() or similar)?

我猜 Activity 是 onPause 或类似的,正在等待对话解决?

但是如果我设置好位置,测试就可以正常工作

我可以做些什么来接受/取消这个对话框?

我不想手动检查位置是否开启。我想测试一切是否正常。

这是实际屏幕的图像

【问题讨论】:

  • 您是否尝试过点击按钮的 ID?这些系统对话框的 ID 为 button1 和 button2,所以它类似于onView(withId(android.R.id.button1)).perform(click())
  • 嗨@agoff 谢谢你的回复!但遗憾的是它无法让它工作,因为它一直在等待,我发现如果我等待太久,它会抛出下一个错误:androidx.test.espresso.NoActivityResumedException: No activities in stage RESUMED. Did you forget to launch the activity. (test.getActivity() or similar)? 我猜这是因为活动是 onPause 所以 Espresso 正在等待它恢复?您对此有何看法?

标签: android testing android-espresso ui-testing android-gps


【解决方案1】:

找到了和我有同样问题的人,解决方案是使用使用设备 UI 的 UiAutomator!这是 Espresso 无法达到的!

Solution

【讨论】:

    猜你喜欢
    • 2016-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多