用于布局的Espresso和在内部查看分页器的方式如何执行单击和滑动(kotlin)

时间:2018-10-27 09:02:31

标签: android kotlin android-espresso android-instrumentation android-espresso-recorder

我正在尝试使用espresso测试我的应用程序

当我尝试使用以下方法滑动Viewpager时

onView(withId(view_pager)).perform(swipeRight())

我收到错误消息: 在视图上执行“快速滑动”时出错

因为我使用选项卡布局并查看页面调度程序,所以我尝试使用以下命令单击选项卡视图内的选项卡项:

onView(withId(tabItem)).perform(click())

,我得到了错误: 找不到层次结构中的视图匹配

我还尝试使用记录式Espresso测试,当我尝试运行时结束,但出现第一个错误。

我的层次结构XML布局如下:

<nested scroll>
        <relative>
            <linear>
                <tab layout>
                      <item1></item1>
                      <item2></item2>
                </tab layout>
                <view pager></view pager>
             </linear>
         </relative>
</nested>

1 个答案:

答案 0 :(得分:0)

对视图执行“操作”时出错的原因是因为您的目标视图无法匹配一个或多个约束。而且,您要尝试在ViewPager上执行滑动操作,并且该操作要求视图至少在屏幕上显示90%。因此,您的ViewPager很可能太高而无法满足约束条件,或者没有足够的空间执行操作。

您应该在ViewPager上使用ViewPagerActions.scrollRight而不是ViewActions.swipeRightViewPagerActions.scrollRight仅检查视图是否部分显示,并且比ViewActions.swipeRight更可靠。

如果找不到层次结构中的任何视图,则表示找不到在onView中声明的视图,因此不是这样的视图,或者您是只是在错误的屏幕上。