Extraction de données d'un contrôle ComboBox/List

Cette rubrique décrit comment utiliser la méthode GetTestData de l'API Functional Tester pour accéder aux valeurs de la liste implémentée par un contrôle ComboBox/List. L'application testée est l'exemple d'application Java fourni avec le produit, ClassicsCD (ClassicsJavaA) :

Imports Rational.Test.Ft
Imports Rational.Test.Ft.Object.Interfaces
Imports Rational.Test.Ft.Script
Imports Rational.Test.Ft.Value
Imports Rational.Test.Ft.Vp


Public Class GetListDataExample Inherits GetListDataExampleHelper
    ' Script Name   : GetListDataExample    ' Generated     : Dec 31, 2005 1:15:35 PM    ' Modified      : Dec 31, 2005 1:15:35 PM    ' Description   : Functional Test Script
    ' since 2005/12/31    ' author Administrator
  Public Function TestMain (ByVal args() As Object)        StartApp("ClassicsJavaA")
       ' Fenêtre : ClassicsCD        Tree2Tree().Click(AtPath _          ("Composers->Schubert->Location(PLUS_MINUS)"))        Tree2Tree().Click(AtPath _          ("Composers->Schubert->Die schone Mullerin, Op. 25"))        PlaceOrderButton2Button().Click()         ' Déclarer des variables pour la liste        Dim NameList As ITestDataList        Dim NameListElements As ITestDataElementList        Dim NameListElement As ITestDataElement
 
        ' Fenêtre : Member Logon        NameComboComboBox().WaitForExistence()
 
        ' Types de données pouvant être testée : {selected=Elément de liste sélectionné,        ' list=Eléments de liste}        Dim Ht As System.Collections.Hashtable = _          NameComboComboBox().GetTestDataTypes()        System.Console.WriteLine(Ht)
 
        ' Obtenir tous les éléments        NameList = NameComboComboBox().GetTestData("list")
 
        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())
 
          ' Cliquer sur chaque élément          NameComboComboBox().Click()          NameComboComboBox().Click(AtText(NameListElement. _            GetElement().ToString()))        Next I
 
        CancelorderlogonButton().Click()
 
        ' Fenêtre : ClassicsCD        ClassicsJavaFrame(ANY,MAY_EXIT).Close()        End Function
 
    End Class

Cet exemple de script ouvre d'abord l'application Java ClassicsCD. Il sélectionne un compositeur dans l'arborescence, puis un album (compositeur = Schubert, album = "Die Schone Muellerin"), puis il clique sur le bouton "Place Order". Sur l'écran suivant (boîte de dialogue Member Logon), le code extrait la liste des valeurs du contrôle ComboBox et les affiche dans la console avant de cliquer sur chaque élément de la liste.

La première étape consiste à extraire les données du contrôle en utilisant la méthode GetTestData :

Dim NameList ITestDataList
NameList = NameComboComboBox().GetTestData("list")

Pour déterminer quels types de données du contrôle sont accessibles au test, on utilise le code suivant :

Dim Ht As System.Collections.Hashtable Ht = _
   NameComboComboBox().GetTestDataTypes()

Disposant de ce jeu de données, on peut créer un tableau (array) contenant tous les éléments de la liste. Cette opération est réalisée comme suit :

Dim NameListElements As ITestDataElementList
NameListElements = NameList.GetElements()

Disposant des éléments de la liste, on peut créer une boucle accédant à chacun d'eux. Pour déterminer le nombre d'éléments de la liste, on a recours à la méthode GetElementCount. Pour extraire la valeur de chaque élément de la liste, on utilise la méthode GetElement. La syntaxe suivante est utilisée à cet effet :

Dim ListElementCount 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()) Next I

Conditions d'utilisation | Appréciations en retour
(C) Copyright IBM Corporation 2002, 2004. All Rights Reserved.