如何在Android或Android Espresso中获取视图层次结构

佩兹

我正在使用Android Espresso,当找不到匹配项时,它将在打印视图层次结构时引发异常。当您运行Android测试或Espresso时,有没有一种方法可以动态获取这种视图层次结构

View Hierarchy:
+>DecorView{id=-1, visibility=VISIBLE, width=480, height=800,     has-focus=true, has-focusable=true, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0, child-count=2}
|
+->LinearLayout{id=-1, visibility=VISIBLE, width=480, height=800, has-focus=true, has-focusable=true, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0, child-count=2}
|
+-->ViewStub{id=16909225, res-name=action_mode_bar_stub, visibility=GONE, width=0, height=0, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=true, is-selected=false, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0}
|
+-->FrameLayout{id=-1, visibility=VISIBLE, width=480, height=764, has-focus=true, has-focusable=true, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=36.0, child-count=1}
|
+--->ActionBarOverlayLayout{id=2131427395, res-name=decor_content_parent, visibility=VISIBLE, width=480, height=764, has-focus=true, has-focusable=true, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0, child-count=2}
| 
WenChao

鉴于AndroidView hierarchy是树形结构,并且使用某种算法更容易遍历每个树形节点,您可以在https://developer.android.com/reference/android/support/test/espresso/util/中查看这些方法TreeIterables.html

它打印出异常跟踪的方式breadthFirstViewTraversal在类https://developer.android.com/reference/android/support/test/espresso/base/ViewFinderImpl.html中使用一种称为并打印出视图树的方法ViewFinderImpl

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Android设备监视器“转储视图层次结构”中更改方向

减少Android布局中的视图层次结构

如何从指令获取角度视图层次结构?

Android:Espresso,找不到层次结构中的视图匹配

使用Android Espresso在层次结构中查找视图

如何检查iOS中的视图层次结构?

Android获取Facebook用户名例外,仅创建视图层次结构的原始线程

在视图层次结构的顶部插入Android视图

如何修复Android Fragment中的“只有创建视图层次结构的原始线程才能触摸其视图”?

如何在PHP Codeigniter中创建树视图层次结构?

如何根据其地址在“调试视图层次结构”中查找视图?

如何在视图层次结构中使用点击事件

Espresso:找不到层次结构中与ID相匹配的视图:android:id / home

如何以编程方式关闭视图层次结构的AutoLayout?

如何将NSStackView注入视图层次结构?

如何处理导航“后退”按钮视图层次结构?

Gmail应用如何实现其平面视图层次结构?

如何快速引用子视图层次结构

Android“只有创建视图层次结构的原始线程才能触摸其视图。” 片段错误

Android“只有创建视图层次结构的原始线程才能触摸其视图。”

只有创建视图层次结构的原始线程才能触摸其视图。在Android上

如何在Android Studio中更改文件层次结构?

强制Android TalkBack停留在一个视图层次结构内

将视图添加到视图层次结构后如何触发动画

对话框视图如何与其活动视图层次结构集成

Android:只有创建视图层次结构的原始线程才能在调用invalidate()时触摸其视图

android.view.ViewRootImpl $ CalledFromWrongThreadException:只有创建视图层次结构的原始线程才能触摸其视图。(RxJava)

AsyncTask:只有创建视图层次结构的原始线程才能触摸其视图。(android.view.ViewRootImpl $ CalledFromWrongThreadException :)

如何将Subview添加到视图层次结构的底部