Daten aus Kombinationsfeld/Listenfeld-Steuerelement extrahieren

Mit Hilfe der Methode GetTestData von Functional Tester kann auf die Werte in der Liste eines Kombinationsfeld/Listenfeld-Steuerelements zugegriffen werden.

Im folgenden Beispiel werden Tests an der Java-Anwendung Classics durchgeführt:

#Region " Script Header "
' Functional Test Script
' author Administrator

 Imports Microsoft.VisualBasic
Imports Rational.Test.Ft
Imports Rational.Test.Ft.Object.Interfaces
Imports Rational.Test.Ft.Object.Interfaces.SAP
Imports Rational.Test.Ft.Object.Interfaces.Siebel
Imports Rational.Test.Ft.Script
Imports Rational.Test.Ft.Value
Imports Rational.Test.Ft.Vp
#End Region

Public Class GetListDataExample Inherits GetListDataExampleHelper

'Script Name   : GetListDataExample
    'Generated     : Jun 29, 2006 3:14:01 PM
    'Description   : Functional Test Script
    'Original Host : Windows XP x86 5.1 build 2600 Service Pack 2 

    'since  2006/06/29
    'author Administrator

    Public Function TestMain(ByVal args() As Object)
        StartApp("ClassicsJavaA")

 

        ' Frame: ClassicsCD
         Tree2().Click(AtPath("Composers->Schubert->Location(PLUS_MINUS)"))
        Tree2().Click(AtPath("Composers->Schubert->Die schone Mullerin, Op. 25"))
        PlaceOrder().Click()

 

        ' Declare variables for list
         Dim nameList As ITestDataList
        Dim nameListElements As ITestDataElementList
        Dim nameListElement As ITestDataElement

 

        ' Frame: Member Logon
         NameCombo().WaitForExistence()

 

        'Available test data types: {selected=Selected List Element,
         ' list=List Elements}
         Dim Ht As System.Collections.Hashtable = NameCombo().GetTestDataTypes()
        System.Console.WriteLine(Ht)


 

        ' Get all elements
         Dim testdata As ITestData

        nameList = CType(NameCombo().GetTestData("list"), TestDataList)

        nameListElements = nameList.GetElements()

        Dim ListElemCount As Integer
         ListElemCount = nameList.GetElementCount()

 

        Dim I As Integer
         For I = 0 To ListElemCount - 1
             nameListElement = nameListElements.GetElement(I)

            System.Console.WriteLine(nameListElement.GetElement().ToString())

            ' Click on each element
             NameCombo().Click()
            NameCombo().Click(AtText(nameListElement.GetElement().ToString()))
        Next I


 

        ' Frame: Member Logon
         Cancel().Click()

 
        ' Frame: ClassicsCD
         ClassicsJava(ANY,MAY_EXIT).Close()
    End Function

 

    End Class

In diesem Beispiel wird zuerst die Java-Anwendung Classics geöffnet. Anschließend werden in der Baumstruktur ein Komponist und ein Album (Komponist = Schubert, Album = "Die Schone Muellerin") ausgewählt, und dann wird auf die Schaltfläche "Place Order" (Auftrag platzieren) geklickt. In der nächsten Anzeige (Dialog zur Mitgliederanmeldung) extrahiert der Mustercode die Liste mit den Werten aus dem Kombinationsfeld und zeigt sie im Konsolfenster an. Danach wird auf jedes einzelne Listenelement geklickt.

Der erste Schritt besteht darin, die Daten mit der Methode GetTestData aus der Steuerung zu extrahieren:

Dim testdata As ITestData

nameList = CType(NameCombo().GetTestData("list"), TestDataList)

Mit dem folgenden Code stellen Sie fest, welche Datentypen für ein Steuerelement zur Verfügung stehen:

Dim Ht As System.Collections.Hashtable = NameCombo().GetTestDataTypes()

System.Console.WriteLine(Ht)

Mit diesem Datenbestand können Sie eine Feldgruppe mit allen Elementen der Liste erstellen. Gehen Sie dazu wie folgt vor:

Dim nameListElements As ITestDataElementList
nameListElements = nameList.GetElements()

Anhand der Listenelemente können Sie eine Schleife erstellen, die auf jedes Listenelement zugreift. Verwenden Sie die Methode GetElementCount, um die Anzahl der Listenelemente zu bestimmen. Die Methode GetElement dient dazu, die Werte der Listenelemente zu extrahieren. In diesem Beispiel wird dazu folgender Code verwendet:

Dim ListElemCount As Integer
         ListElemCount = nameList.GetElementCount()


Dim I As Integer
   For I = 0 To ListElemCount - 1
   		nameListElement = nameListElements.GetElement(I)

    System.Console.WriteLine(nameListElement.GetElement().ToString())

    ' Click on each element
     NameCombo().Click()
    NameCombo().Click(AtText(nameListElement.GetElement().ToString()))
	Next I

Feedback