如何使用 C# 为 UIAutomation 目的调整 UIA 窗口的大小?

Posted

技术标签:

【中文标题】如何使用 C# 为 UIAutomation 目的调整 UIA 窗口的大小?【英文标题】:How to resize UIA window for UIAutomation purposes, using C#? 【发布时间】:2013-07-26 01:04:25 【问题描述】:

我使用 Visual Studio 为 Win32 应用程序创建了一些编码的 UI 测试。我希望窗口大小保持一致,因此我希望它在启动应用程序后调整应用程序窗口的大小。

我正在像这样启动应用程序:

using (ApplicationUnderTest.Launch(this.UIMap.launchReaderParams.ExePath,
                                   this.UIMap.launchReaderParams.AlternateExePath))   

我已经研究了执行此操作的可能方法,并找到了一种名为 SetWindowPos() 的方法。但是我不确定如何使用它,因为它需要窗口句柄作为其参数之一。如何获取窗口句柄?

另外,有没有更好的方法来调整我的应用程序窗口的大小?

【问题讨论】:

【参考方案1】:

您可以通过向 CreateProcess 提供 STARTUPINFO 结构将位置和大小传递给被测应用程序。现在,当然,您的问题是将STARTUPINFO 结构转换为CreateProcess。我不知道你的Launch 方法是如何实现的,但在某些时候它会调用CreateProcess(好;你所要做的就是适当地初始化STARTUPINFO 结构)或ShellExecute(坏,因为你不能指定 STARTUPINFO 结构)。

【讨论】:

这听起来不错,但我最终还是使用了 SetWindowsPos 函数。我通过搜索当前进程返回了应用程序句柄。

以上是关于如何使用 C# 为 UIAutomation 目的调整 UIA 窗口的大小?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Iphone UIAutomation 中编辑表格时选择 (-) 图标

如何使用 Jenkins 运行 UIAutomation?

如何使用带有 tuneup.js 的 UIAutomation 验证警报内容

如何使用UIAutomation进行iOS自动化测试

即使在应用退出后,如何使用 UIAutomation 工具继续测试 iOS 应用?

如何在 UIAutomation 中使用节点模块