繁体   English   中英

使用DialogFragment时,Espresso不会在微调器中选择项目

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

情况

我有一个Espresso测试,可以从微调器中选择一个项目。 当我运行此测试以使微调框显示在“活动”(电话模式)上时,它会使用以下代码正确选择项目:

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

ID和字符串用实际值替换。

问题

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

有没有人遇到这个问题或知道我缺少什么? 微调框位于片段上时,我需要做些其他事情吗? 我在文档或问题跟踪器中看不到任何内容。 任何建议或想法表示赞赏。 这可能是一个错误,但似乎并不是一件奇怪的事情,因为它现在还没有被发现,所以我认为我做错的可能性更大。

也许与onData有关,但是为什么现在不起作用,我该如何解决呢?

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

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

以下帖子未接受答案,但这对我有用。

在对话框中选择微调器时,Android espresso中出现RunTimeException

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM