繁体   English   中英

如何在不关闭表单的情况下按按钮更改QTP中使用DotNetFactory制成的表单的textField中的文本?

[英]How Can I Make a Button Press Change the Text in textFields of a Form Made With DotNetFactory in QTP, Without Closing the Form?

我有一个在Quick Test Professional(QTP)中运行的测试,在运行前将被某些用户输入修改。 为此,我使用了QTP提供的DotNetFactory来创建一个表单,该表单具有我需要的各种字段/按钮,并遵循本示例中概述的策略。

我得到的表单设计包括一个按钮,该按钮会将表单中的各个textField重置为其默认值。 我的问题是我不确定如何实现此按钮,因为似乎按下任何按钮都将关闭表格。 我确实可以关闭表单并使用默认值重新打开它,但是有些字段我不想重置,所以这不是理想的选择。 我当前的感觉是,我可以使用form.show()而不是使用form.showDialog()命令,并在等待按钮按下时尝试连续循环。 听起来不错,但是有人知道如何在这种情况下实现这一目标吗? 还是无法动态更改表单?

谢谢

是的,那篇文章很好地展示了带有QTP的DotNetFactory的功能。 但是,这不是我用来创建表单的解决方案。 特别是如果您打算在该表单上包含多个字段。

我宁愿使用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解决方案所需遵循的步骤从一个很好的寻找,是:

  1. 在Visual Studio中设计一个表单和相应的代码。 (请注意,选择一个类库项目而不是WinForms项目,因为之后您要将其编译为dll)
  2. 使用QTP中的DotNetFactory加载库。
  3. 使用.ShowDialog()在QTP中调用表单。
  4. 使用表单捕获的属性值。

相应的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

希望能有所帮助。 让我知道您是否需要有关任何步骤的更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM