首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么会出现在UI自动化客户端中的异常,出现在正在自动化的UI中?

为什么会出现在UI自动化客户端中的异常,出现在正在自动化的UI中?
EN

Stack Overflow用户
提问于 2011-05-16 21:55:27
回答 1查看 1K关注 0票数 2

一点背景..。

我正在开发一个UI自动化应用程序,它与UI上的控件随机交互。应用程序和正在自动化的UI都是WPF应用程序。我正在使用UI自动化可访问性框架。偶尔,我会在我的应用程序中得到一个ElementNotAvailableException,我会捕捉并处理它。在使用ANTS 7分析我们的UI时,我注意到这些异常出现在第2代垃圾堆上。新的异常实例与我在应用程序中捕获异常的次数相匹配。

我看过GCRoot使用WinDBG,UIAutomation页面,我还没有找到一个明确的解释,为什么一个捕获的异常出现在应用程序是自动化的。当UI被自动化时,对象不会被释放,甚至当我关闭我的自动化应用程序时,对象也不会被释放。

有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2011-05-16 22:11:26

在不知道它是如何实现的情况下,我们可以知道,为了使UI自动化能够完成它需要做的事情:

  • instrumentation,and
  • interprocess通信

检测部分由基础结构组成,这些基础结构实际上被编译到UI框架中的所有类中,或者添加到框架中,如果您愿意的话。它“感染”主机应用程序,并在其中运行一个小型应用程序。

需要进程间通信部分在客户端和主机之间传递非图形信息,例如文本框的实际内容。这听起来很简单,但实际上调用了两个进程之间的注入和交换类型和值。

现在,当您将这两种情况结合起来时,可以将异常作为进程间通信的一部分进行交换,并且该异常可以作为小型应用程序(即自动化框架)的参考,并且您可以对如何发生进行推测性的解释。

在您的情况下,如果您有足够的好奇心,或足够的动机(可能是由一个bug),您可以继续钻研这个问题使用各种工具。您有调试器、ILSpy、黑匣子实验、堆工具等,这取决于您需要走多远。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6023894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档