使用 DialogFragment 时,Espresso 不会在微调器中显示 select 项

Espresso won't select item in spinner when using a DialogFragment

情况

我有一个 Espresso 测试,它从旋转器中选择一个项目。当我 运行 此测试使微调器显示在 Activity(phone 模式)时,它会使用以下代码正确选择项目:

onView(withId(R.id.spinner)).perform(scrollTo()).perform(click());
onData(allOf(is(instanceOf(String.class)),
    is("Spinner item string")))
    .perform(click());

其中 ID 和字符串被替换为实际值。

问题

但是,如果微调器位于 DialogFragment(平板电脑模式)上,则相同的代码会挂起并且似乎无法在微调器中找到该项目。它可以单击微调器,但无法再单击该项目。据我所知,没有其他区别。

问题

有没有人 运行 解决过这个问题或者知道我遗漏了什么?当微调器在片段上时,我需要做些什么不同的事情吗?我在文档或问题跟踪器中看不到任何内容。任何建议或想法表示赞赏。这可能是一个错误,但现在还没有发现它似乎并不是什么奇怪的事情,所以我认为更有可能是我做错了什么。

可能与 onData 有关,但为什么它现在不起作用,我该如何修复它?

在这种情况下,我似乎在 post 之前看起来不够认真,因为我发现了另一个正确答案的问题:

onData(allOf(is(instanceOf(String.class)), 
   is("Spinner item string")))
   .inRoot(isPlatformPopup())
   .perform(click());

下面的答案未被接受 post 但这对我有用。