浮动视图的Android测试

浮动视图的Android测试,android,android-testing,android-espresso,android-uiautomator,Android,Android Testing,Android Espresso,Android Uiautomator,我在WindowManager中添加了一个浮动视图,并使其在屏幕上移动,我可以在单击此视图时执行单击事件,一切正常 但是,我不知道如何在espresso或UIAutomator中访问此视图 将视图添加到WindowManager 浮动视图 rect中的白蓝色图标是我所说的浮动视图 问题: 浮动视图响应一个click事件,并执行一些任务,现在我想在AndroidJunit测试中这样做 浓缩咖啡 我尝试了浓咖啡,使用onView方法,但测试用例: onView(withContentDescr

我在WindowManager中添加了一个浮动视图,并使其在屏幕上移动,我可以在单击此视图时执行单击事件,一切正常

但是,我不知道如何在espresso或UIAutomator中访问此视图

将视图添加到WindowManager 浮动视图 rect中的白蓝色图标是我所说的浮动视图

问题: 浮动视图响应一个click事件,并执行一些任务,现在我想在AndroidJunit测试中这样做

  • 浓缩咖啡
我尝试了浓咖啡,使用onView方法,但测试用例:

onView(withContentDescription("bugtags_fab_des_normal")).perform(click());
获取:

  • 智能自动机
我尝试使用UIAutomator查看器,但在视图层次结构中找不到floatingView

怎么 如何在浓缩咖啡或uiautomator中访问此视图并执行单击操作

附录 测试用例 输出日志

Buggtags.com
实际上,我正在使用一个名为的sdk,它是一个用于应用程序错误报告和崩溃分析的简单工具。

在您的
浮动视图中添加onClickListener
您的视图不在
活动中,因此可以使用
inRoot()
方法找到它:

@Test
public void checkClickOnFloatingButton() {
    onView(withContentDescription("bugtags_fab_des_normal")).inRoot(withDecorView(not(is(getActivity().getWindow().getDecorView())))).perform(click());
}
在这段代码中,您可能还应该将
reportImage
更改为
floatingView

ImageView floatingView = new ImageView(mContext);
reportImage.setContentDescription("bugtags_fab_des_normal"); // <---`reportImage` to `floatingView`
mWindowManager.addView(floatingView, layoutParams);
ImageView floatingView=新的ImageView(mContext);

reportImage.setContentDescription(“bugtags_fab_des_normal”);//对不起,你没有理解我的问题,我想在浓缩咖啡中访问这个,你能提供android.support.test.espresso.NoMatchingViewException的完整日志吗?嗨,我已经附加了测试用例和输出日志。嗨!您是如何实现浮动按钮并处理其上的单击事件的?请提供我它的代码或链接到教程请!令人惊叹的!它就像一个符咒!我想问一个问题,为什么我应该使用withDecorView(not()),这里not()的意思是什么?也许,它在没有withDecorView(not())
的情况下可以工作。我没有试过。它是另一个项目的副本。但正如我所记得的(我可能错了),使用这种方法,我们没有在
活动中搜索视图,从而减少了测试时间。好的,我将进一步了解它。赏金将在22小时后发给你。是否可以使用UIAutomator找到此视图?
@Test
public void testInvoke() {
    onView(withContentDescription("bugtags_fab_des_normal")).perform(click());
}
@Test
public void checkClickOnFloatingButton() {
    onView(withContentDescription("bugtags_fab_des_normal")).inRoot(withDecorView(not(is(getActivity().getWindow().getDecorView())))).perform(click());
}
ImageView floatingView = new ImageView(mContext);
reportImage.setContentDescription("bugtags_fab_des_normal"); // <---`reportImage` to `floatingView`
mWindowManager.addView(floatingView, layoutParams);