Extracción de datos desde un recuadro combinado/control de lista

Se puede utilizar el método GetTestData de Functional Tester para acceder a los valores de la lista de un recuadro combinado/control de lista.

El siguiente ejemplo es una prueba contra la aplicación Classics Java:

#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

Este ejemplo, primero obre la aplicación Classics Java. Seleccione un compositor en el árbol y un álbum (compositor = Schubert, álbum = "Die Schone Muellerin") y pulsa el botón "Hacer pedido". En la siguiente pantalla (Inicio de sesión - diálogo), el código de ejemplo extrae la lista de valores del recuadro combinado y los visualiza en la ventana de la consola antes de pulsar cada elemento de la lista.

El primer paso es extraer datos desde el control, utilizando el método GetTestData:

Dim testdata As ITestData

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

Para saber qué tipos de datos están disponibles para un control, utilice el siguiente código:

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

System.Console.WriteLine(Ht)

En este conjunto de datos concreto, puede crear una matriz que contenga todos los elementos de la lista. Esto se efectúa de la siguiente manera:

Dim nameListElements As ITestDataElementList
nameListElements = nameList.GetElements()

Con los elementos de lista en cuestión, puede crear un bucle que acceda a cada elemento de la lista. Para determinar el número de elementos de lista, utilice el método GetElementCount. Para extraer el valor del elemento de lista se utiliza el método GetElement. En el ejemplo se efectúa con el siguiente código:

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

Comentarios