Android 在 Espresso 测试中点击后立即关闭微调器

Android Spinner Dismissed Right After Tapping in Espresso Tests

我有一套 Espresso 测试 运行 Android。他们通常 运行 没有问题。但是,间歇性地,他们无法在 Spinner 中验证日期。通过查看它,我发现 Spinner 以某种方式在被点击后立即被解雇。

运行ning 的代码是:

public static void selectFromComboBox(String prompt, String toSelect) {
    onView(allOf(withId(R.id.combo_box_entry), hasSibling(withText(prompt)))).perform(click());
    onData(Matchers.allOf(is(instanceOf(String.class)), is(toSelect))).perform(click());
}

当我 运行 完全相同的测试没有任何变化时,我有时会得到错误

android.support.test.espresso.PerformException: Error performing 'load adapter data' on view 'is assignable from class: class android.widget.AdapterView'.

我记录了通过和失败的屏幕,发现在失败的情况下,微调器的列表几乎在打开后立即消失,这似乎是导致问题的原因。

日志输出在通过场景和失败场景之间实际上看起来没有任何不同。有没有人以前见过这个或知道解决方法或知道到底发生了什么?

这不是最漂亮的解决方案,但我解决这个问题的方法是在打开菜单后添加一个简单的 500 毫秒等待