用于Lollipop的UiAutomator转储丢失WebView视图层次结构

时间:2014-12-11 16:52:21

标签: android android-5.0-lollipop uiautomator

在KitKat中,如果焦点放在webview上,我们就可以从UIAutomator转储中获取webview视图层次结构。我想知道是否有替代功能用于获取棒棒糖版本的webview视图层次结构,或者该版本中是否丢失了该功能?

3 个答案:

答案 0 :(得分:3)

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

有一些kludgy解决方案,但它们不可靠。

您最好的选择是编写由uiautomator运行的实际单元测试,并使用dumpWindowHierarchy API自行提取。如果您这样做,确保在uiautomator启动后创建您想要提取的WebView非常重要(但显然在调用dumpWindowHierarchy之前)。实现这一目标的最佳方式取决于您的具体情况。

我写了更多关于为什么在blog post中Lollipop可能发生了变化的猜测。

答案 1 :(得分:1)

我不确定你需要做什么,但也许setWebContentsDebuggingEnabled()可以提供帮助。 启用此功能将允许您使用Chrome 调试WebView的内容,它也可能会影响UiAutomator的行为,所以给它一个机会!

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

可以找到有关网络视图远程调试的更详细的文档here

答案 2 :(得分:1)

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