gpt4 book ai didi

android - uiautomator 的 UiTestAutomationBridge 返回的空根节点

转载 作者:太空狗 更新时间:2023-10-29 15:10:35 30 4
gpt4 key购买 nike

我在 python 脚本中运行 uiautomator 时遇到问题(类似的 shell 脚本运行良好)。为了方便起见,我使用以下方法:

    import subprocess

def host_exec(cmd):
p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
out= p.communicate()
return out

然后我结合使用

    host_exec("path_to_adb shell uiautomator dump /sdcard/dump.xml")
host_exec("path_to_adb pull /sdcard/dump.xml ./dump.xml")
--read file here--
host_exec("path_to_adb shell rm /sdcard/dump.xml")
host_exec("rm ./dump.xml")

我经常使用它,前 1-2 次运行通常有效,之后它似乎偶尔会在第 1 行(创建 dump.xml)失败并提供错误代码

    ERROR: null root node returned by UiTestAutomationBridge.

我查看了 UiTestAutomationBridge.java( http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.1.1_r1/android/accessibilityservice/UiTestAutomationBridge.java )在我看来,原因是开发人员在第 65 行设置的超时有时足够,有时不足以让桥正确形成。 (如果我错了,请纠正我。

真正让我烦恼的是,我已经使用相同的代码将近一个星期了,今天早上我才第一次遇到这个错误,现在几乎每次都在发生。我已经检查以确保在读取文件后关闭文件,在转储和复制新文件之前删除文件,并且在每个命令之前和之后尝试了 time.sleep(10),但仍然没有成功。我已经从命令行为我的 shell 脚本运行了“时间”命令,它还没有失败过一次,整个过程大约需要 2 秒,所以 10 秒应该足以解决任何陷入困境的事情整理一下。

最佳答案

我在调试时遇到了几乎相同的问题https://github.com/xiaocong/uiautomator .我不知道为什么我在启动和杀死uiautomator后总是出现异常,甚至重新启动设备也无法解决。

我尝试过的唯一解决方法是在设置中将设备恢复出厂设置。

关于android - uiautomator 的 UiTestAutomationBridge 返回的空根节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16929129/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com