【发布时间】:2016-03-14 12:55:06
【问题描述】:
我有一个使用 Visual Studio 2012 Professional 在 C++ MFC 中编写的应用程序。目前我想使用 C# 编写的 TestStack.White 框架创建一些自动化脚本。
我无法控制列表框和编辑控件。 我正在使用间谍++。编辑控件嵌套在组框内,我无法检查自动化 ID。
我的代码示例
var psi = new ProcessStartInfo(ExeSourceFile);
application = Application.AttachOrLaunch(psi);
mainWindow = application.GetWindow(SearchCriteria.ByText(applicationName), InitializeOption.NoCache);
其中 ExeSourceFile 是应用程序的路径。
这是我尝试过的方式。其中 IDC_Edit 是设计者的 ID。
TextBox TextObj = mainWindow.Get<TextBox> (SearchCriteria.ByAutomationId("IDC_Edit"));
- 如何控制“列表框”检查/计数行数据(目前我使用向上和向下箭头作为解决方法)?
- 如何控制组框内的“编辑控件”(目前作为解决方法,我使用 Tab 键更改焦点)?
我尝试通过 ID 获取 MFC 控件,但失败了。我应该使用 Spy++ 以外的工具还是其他框架?
编辑:
我尝试使用 id "1221" 和 "0x1221" 但没有成功。
【问题讨论】:
-
GroupBox Controls 不实现任何嵌套。无论 Edit 控件是否位于 GroupBox 内,自动化方面都没有区别。如果您需要查看对象的可访问树,请改用Inspect 工具。我假设 TestStack White 使用相同的可访问树进行自动化。
-
我不熟悉这个测试框架,但是谁来把文本“IDC_Edit”转换成它的数值呢?
-
能否请您发布来自检查的控件属性的屏幕截图。
-
我回家后看看这个。由于我以前从未使用过 MFC 应用程序,因此我需要花一点时间来设置 MFC 应用程序。感谢您的屏幕截图。
标签: c# c++ mfc white-framework