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

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

最近做安卓自动化, 遇上很多问题, 慢慢养成了有问题上 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.

我来试试

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