是的,那篇文章很好地展示了 DotNetFactory 与 QTP 的强大功能。但是,这不是我用来创建表单的解决方案。特别是如果您打算在该表单上包含多个字段。
我宁愿使用 Visual Studio 创建表单,因为使用丰富的 IDE 创建和维护表单要容易得多,主要是使用点击。创建如下所示的内容只需要大约 5 分钟。(如果您没有 Visual Studio 许可证,可以使用 SharpDevelop 或 Visual Studio Express)。
下面的示例是在 VB.Net 中完成的,可以很容易地使用 C# 或他们更熟悉的任何其他 .net 语言。(抱歉,我想添加表单的 Visual Studio 屏幕截图以使其更清晰,但由于我是 stackoverflow 的新用户并且没有足够的声誉,所以无法这样做)
VB.Net 表单代码片段:
Public Class EnvironmentDataForm
Private strServerName As String
Private strUsername As String
Private strPassword As String
Public Property DBServerName() As String
Get
DBServerName = strServerName
End Get
Set(ByVal value As String)
strServerName = value
TextBox_DBServer.Text = strServerName
End Set
End Property
Public Property DBUsername() As String
Get
DBUsername = strUsername
End Get
Set(ByVal value As String)
strUsername = value
TextBox_DBUsername.Text = strUsername
End Set
End Property
Private Sub CloseButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
strServerName = TextBox_DBServer.Text
strUsername = TextBox_DBUsername.Text
strPassword = TextBox_DBPassword.Text
Me.Close()
End Sub
End Class
我没有详细解释如何使用 Visual Studio(我确信网上有很多相关资源),但基本上是您需要遵循的步骤来创建一个接受用户输入的 QTP 解决方案从一个不错的寻找,是:
- 在 Visual Studio 中设计一个表单和相应的代码。(注意,选择一个类库项目而不是 WinForms 项目,因为你想把它编译成一个 dll 之后)
- 在 QTP 中使用 DotNetFactory 加载库。
- 使用 .ShowDialog() 在 QTP 中调用表单。
- 使用表单捕获的属性值。
对应的QTP代码:
Set objEnvDataForm = DotNetFactory.CreateInstance(_
"EnvironmentData.EnvironmentDataForm",_
"C:\EnvironmentData.dll")
'This step will block QTP execution until the form is closed.
'Also, make sure the form is designed to save the field data before closing:
' See Button1_Click() in the .Net code above
objEnvDataForm.Showdialog()
strConnString = "DRIVER={Microsoft ODBC for Oracle};" &_
"Server="& objEnvDataForm.DBServername &_
";Uid="& objEnvDataForm.DBUsername &_
";Pwd="& objEnvDataForm.DBPassword
Set objCon = CreateObject("ADODB.Connection")
objCon.Open strConnString
希望有帮助。如果您需要有关任何步骤的更多信息,请告诉我。