C# 以编程方式查找消息框并单击按钮
我正在尝试自动化winform应用程序的测试。我在与测试代码相同的过程中运行它,因此很容易找到.Net控件并在其上模拟用户操作。然而,我被一个消息框(使用标准MessageBox.Show方法创建)卡住了一点。我如何抓住它并模拟按下按钮?C# 以编程方式查找消息框并单击按钮,c#,.net,winforms,user-interface,testing,C#,.net,Winforms,User Interface,Testing,我正在尝试自动化winform应用程序的测试。我在与测试代码相同的过程中运行它,因此很容易找到.Net控件并在其上模拟用户操作。然而,我被一个消息框(使用标准MessageBox.Show方法创建)卡住了一点。我如何抓住它并模拟按下按钮? codeplex.com/white-免费 testautomationfx.com-商业化但非常好 您可能必须使用WinAPI调用(FindWindowEx,ect)并向按钮手柄上下发送LMB消息。如果您知道标题(并且它是唯一的),您可以通过Applicat
- codeplex.com/white-免费
- testautomationfx.com-商业化但非常好
但我建议将GUI和实现分开,因为单元测试的基本原则是“单元”,单元是与其他类或现实世界分开的类。
这一原则为您提供了良好的类设计,并有助于避免软件爆发和其他许多好东西。一般来说,UI自动化(如我链接到的东西)是一种更高级别的方法,即使这是有效的[我在这个基础上给出了+1)],我如何找到按钮?
public class UserInterrogator : IUserInterrogator
{
private Form owner;
public UserInterrogator(Form owner)
{ this.owner = owner; }
public Font GetFontFromUser() // member of the IUserInterrogator interface
{
FontDialog fd = new FontDialog();
fd.ShowDialog( owner );
return fd.Font;
}
}