AirtestProject / Poco

A cross-engine test automation framework based on UI inspection
http://airtest.netease.com/
Apache License 2.0
1.76k stars 318 forks source link

poco获取某些节点会找不到 #314

Open goblinM opened 4 years ago

goblinM commented 4 years ago

描述问题bug poco获取节点一直失败,然后尝试输出整个UI树的时候,发现是没有任何节点。 其中比较独特的点: 1.apk的登录层可以找到UI树 2.登录进去后的layout层在airtest IDE就找不到了,poco用代码可以找到一些,然后很多就找不到

[03:15:41][DEBUG]
Traceback (most recent call last):
  File "D:/working/polyv-cloudclass-autotest/examples/test_airtest_poco.py", line 28, in <module>
    ui = poco.agent.hierarchy.dump()
  File "D:\working\project_env3\lib\site-packages\poco\utils\retry.py", line 15, in wrapped
    return func(*args, **kwargs)
  File "D:\working\project_env3\lib\site-packages\poco\utils\hrpc\hierarchy.py", line 37, in dump
    return self.dumper.dumpHierarchy()
  File "D:\working\project_env3\lib\site-packages\hrpc\object_proxy.py", line 92, in __call__
    return self._client__.evaluate(self.__call_no_evaluate__(remote_obj_cache, *args))
  File "D:\working\project_env3\lib\site-packages\hrpc\client.py", line 81, in evaluate
    raise RpcRemoteException(resp)
hrpc.exceptions.RpcRemoteException: com.netease.open.libpoco.sdk.exceptions.NodeHasBeenRemovedException: Node was no longer alive when query attribute "visible". Please re-select.

相关截图 (贴出遇到问题时的截图内容,如果有的话) image

python 版本: python3.6

poco 版本: 1.0.76

设备:

其他相关环境信息 1.使用uiautomator测试是可以找到元素并且可以点击的 2.使用appium测试也是可以找到元素并且可以点击的

yimelia commented 4 years ago

是原生Android应用吗?

goblinM commented 4 years ago

应该是的,android studio进行开发的

goblinM commented 4 years ago

比较好奇的是poco的原始不是xiaocong大大的uiautomator for python,我用uiautomator的时候可以拿到,但是到了poco后直接就是整个树都拿不到,这是哪里出错了呢?那如果我这时候用uiautomator的时候airtest以及poco是否能无缝接入?

yimelia commented 4 years ago

不能,poco和uiautomator是冲突的,只能选其中一个。 airtest倒是可以和以上任意一个兼容。 能提供一下有问题的apk是什么么?方便我们这里复查

goblinM commented 4 years ago

你好,你留一个邮箱给我,我这边把信息发你