Android Lollipop Lost WebView层次结构的UiAutomator转储

Android Lollipop Lost WebView层次结构的UiAutomator转储,android,android-5.0-lollipop,android-uiautomator,Android,Android 5.0 Lollipop,Android Uiautomator,在KitKat中,如果将焦点放在webview上,我们可以从UIAutomator转储中获得webview视图层次结构。我想知道在lollipop发行版中是否有替代功能来获取webview层次结构,或者该功能是否在发行版中丢失了?我不确定您需要做什么,但可能会有所帮助启用此选项将允许您使用Chrome调试WebView的内容,这也可能会影响UiAutomator的行为,因此请给它一个机会 WebView web = ... web.setWebContentsDebuggingEnabled(t

在KitKat中,如果将焦点放在webview上,我们可以从UIAutomator转储中获得webview视图层次结构。我想知道在lollipop发行版中是否有替代功能来获取webview层次结构,或者该功能是否在发行版中丢失了?

我不确定您需要做什么,但可能会有所帮助启用此选项将允许您使用Chrome调试WebView的内容,这也可能会影响UiAutomator的行为,因此请给它一个机会

WebView web = ...
web.setWebContentsDebuggingEnabled(true);

可以找到关于WebView上远程调试的更详细的文档。

我花了一些时间来解决这个问题,但基本上,出于实际目的,是的,这个功能在这个版本中丢失了

有一些困难的解决办法,但它们不可靠

您最好编写一个由uiautomator运行的实际单元测试,并使用API自己提取它。如果要执行此操作,请务必确保要提取的WebView是在uiautomator启动之后创建的(但显然是在调用dumpWindowHierarchy之前)。实现这一目标的最佳方式将取决于你的具体情况


我写了更多关于为什么这一点可能在a中的棒棒糖中发生了变化的推测。

这似乎已经在Android系统Webview v44中得到了修复。今天早上刚试了一下,dump现在似乎给了我视图层次结构。尝试升级webview并再次尝试:-)

谢谢您的关注!我熟悉setWebContentsDebuggingEnabled和Chrome调试WebView。不幸的是,这是我无法重新打包的第三方应用程序。