2

我有一个 WPF 应用程序需要自动化以进行测试。有一个使用 Windows UIAutomation 框架执行此操作的现有工具。

问题是当我尝试访问主应用程序上的元素并触发它们时,内存被分配在主应用程序上,并且无法强制对其进行 GC。更重要的是,如果没有找到页面上的元素并且执行了多次重新托盘,则有更多的内存要分配而不是释放。我相信问题来自AutomationElement类的FindFindAll方法。

这个问题似乎很老了,没有通用的解决方案[1][2]。

自动化框架会进行一些缓存以更好地访问 UI 元素。我想到的一种可能的解决方案是禁用 UI 元素的缓存或强制清除缓存。以前有没有人这样做过并且可以帮助我?

另外,您还有其他解决方案来解决由 Windows UI 自动化框架引起的内存泄漏问题吗?

我在 Win7 和 Win10 机器上进行了测试。

[1] https://social.technet.microsoft.com/Forums/lync/en-US/12f6447d-afa3-49b9-9862-013f5d47419a/memory-leak-with-ui-automation?forum=w8itproperf

[2] UIAutomation 内存问题

4

0 回答 0