0

很久以前,我开发了一个测试自动化系统,遗憾的是当时存在的框架都无法实现。

关键功能之一是它能够利用标准 Win32 API(EnumWindows、FindWindowEx 等)查找 Win32 对话框并与之交互。

由于 Windows 8 的变化,一个团队最近引入了一个 WPF 应用程序,我开始了一项我认为很简单的任务,即查找窗口、枚举控件(查找 OK 按钮)并单击它。需要注意的是,我的系统不会调用被测应用程序。这是一个系统级事件,本质上我需要通过“确定”按钮“找到它”并“关闭它”,因为它采用的代码路径。

我很快意识到这并不像我想象的那么简单,但我知道它是可能的,因为使用 Snoop 我可以找到窗口并向下钻取控制树直到找到它。关于这个主题有很多问题,但它们都在同一个应用程序/应用程序域中。

就我而言,这是从一个完全独立的应用程序(.net 4)中发生的。我知道windows的标题,但其他的很少。

有谁知道如何实现 Snoop 本质上正在做的事情(找到一个窗口,获取其控件列表,通过某些标准遍历它以查找特定控件),然后模拟点击事件?

4

1 回答 1

0

I've never used it, but you might be looking for this page on MSDN.

From that page:

Microsoft UI Automation is the new accessibility framework for Microsoft Windows. It addresses the needs of assistive technology products and automated test frameworks by providing programmatic access to information about the user interface (UI). In addition, UI Automation enables control and application developers to make their products accessible.

于 2013-04-12T14:03:36.743 回答