簡體   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