gpt4 book ai didi

float View 的Android测试

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:25:19 25 4
gpt4 key购买 nike

我给 WindowManager 添加了一个 float View ,让它可以在屏幕上移动,当我点击这个 View 时我可以执行点击事件,一切正常。

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

将 View 添加到 WindowManager

final WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams(
WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.MATCH_PARENT,
type,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
| WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH
| WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,
PixelFormat.TRANSLUCENT
);

ImageView floatingView = new ImageView(mContext);
floatingView.setContentDescription("bugtags_fab_des_normal");
mWindowManager.addView(floatingView, layoutParams);

float View

the white-blue icon in rect is the floating view i am talking about.

floating-view

问题

float View 响应一个点击事件,并执行一些任务,现在我想在 AndroidJunit 测试中这样做。

  • Espresso

我尝试 Espresso,使用 onView 方法,但测试用例:

onView(withContentDescription("bugtags_fab_des_normal")).perform(click());

获取:

android.support.test.espresso.NoMatchingViewException: No views in hierarchy found matching: with content description: is "bugtags_fab_des_normal"
  • 界面自动化

我尝试使用 UIAutomator Viewer,但在 View 层次结构中找不到 floatingView。

如何

如何在 espresso 或 uiautomator 中访问此 View 并执行点击操作?

附录

测试用例

@Test
public void testInvoke() {
onView(withContentDescription("bugtags_fab_des_normal")).perform(click());
}

输出日志

output-log-gist

Bugtags.com

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

最佳答案

您的 View 在 Activity 之外,因此可以使用 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);

关于 float View 的Android测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34804039/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com