Appium UiAutomatorViewer 点了截图后总报 Error obtaining hierarchy (疑似原因)

小小竹排 · 2017年11月17日 · 最后由 Showker 回复于 2019年09月23日 · 2005 次阅读

最近做安卓自动化, 遇上很多问题, 慢慢养成了有问题上 TH 论坛的习惯. 今天的问题是 UiAutomatorViewer 点了截图后总报 Error obtaining hierarchy

我遇上这个问题的时候正好强行终止了一个 java case 的执行, 心里便怀疑是不是和强行终止 case 有关. 论坛里逛了逛, 找到了相关信息 :

@yangchengtest · #8 · 2015年02月05日

转帖:uiautomator在获取界面状态信息时,首先要等界面处于idle空闲状态才会做dump操作。这就是uiautomator死活拿不到动态界面信息的原因。~问问开发干么了吧。。。

马上试一试:

1/ 重启 appium 后, UiAutomatorViewer 功能恢复;
2/ 从 IDEA 启动一个 case, App 起来后终止执行
3/ UiAutomatorViewer 获取截图 , 马上就报错了.

解决办法就是关掉 Appium(稍等会更好), 然后再启动 uiautomator, 获取 (成功后) 再打开 appium.

共收到 8 条回复 时间 点赞

这不一定是真的原因,你看源码就知道了,可能是 appium 启动的 uiautomator 进程还没关闭导致的,其实你只要调出手机多任务管理,清理下后台应用就可以了,和 uiautomator 要等待 idle 空闲状态没有关系。

—— 来自 TesterHome 官方 安卓客户端

哎,app 元素定位比 web 定位还要麻烦一点,奔溃,app-inspector 用不惯

cooling 回复

开发多配合,把 ID 设置上,测试定位就好办了

最近大神,你用过 uirecorder?

cooling 回复

你说 appium desktop 里面的录制工具,没用过,还是自己写吧,

我说的是阿里的 uicorder,appnium desktop 里面的对象识别工具用过

cooling 回复

没用过,都是新手,一起学习

解决办法就是关掉 Appium(稍等会更好), 然后再启动 uiautomator, 获取 (成功后) 再打开 appium.

我来试试

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册