Extraction des données d'un contrôle ComboBox/List (JComboBox)

Vous pouvez utiliser la méthode getTestData de 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) :

import resources.GetListDataExampleHelper;

import com.rational.test.ft.*;
import com.rational.test.ft.object.interfaces.*;
import com.rational.test.ft.object.interfaces.SAP.*;
import com.rational.test.ft.object.interfaces.siebel.*;
import com.rational.test.ft.script.*;
import com.rational.test.ft.value.*;
import com.rational.test.ft.vp.*;

/**
 * Description : Functional Test Script
 * @author Administrator
 */
public class GetListDataExample extends GetListDataExampleHelper
{
/**
* Script Name   : GetListDataExample
* Generated     : May 16, 2006 9:06:46 AM
* Description   : Functional Tester Script
* Original Host : WinNT Version 5.1  Build 2600 (S)
* 
* @since  2006/05/16
* @author Administrator
*/
public void testMain (Object[] args) 
{
startApp("ClassicsJavaA");

// Fenêtre : ClassicsCD
tree2().click(atPath("Composers->Schubert->Location(PLUS_MINUS)"));
tree2().click(atPath("Composers->Schubert->Die schone Mullerin, Op. 25"));
placeOrder().click();

//Déclarer des variables pour la liste
ITestDataList nameList;
ITestDataElementList nameListElements;
ITestDataElement nameListElement;

// Fenêtre : Member Logon
nameCombo().waitForExistence();

//Available test data types: {selected=Selected List Element,
//list=List Elements}
java.util.Hashtable ht = nameCombo().getTestDataTypes();
System.out.println(ht);

// Obtenir tous les éléments
nameList = (ITestDataList)nameCombo().getTestData("list");
nameListElements = nameList.getElements();

int listElemCount = nameList.getElementCount();

	for (int i = 0; i < listElemCount; i++)
	{
	nameListElement = nameListElements.getElement(i);
	System.out.println(nameListElement.getElement());
	
	// Cliquer sur chaque élément
	nameCombo().click();
	nameCombo().click(atText(nameListElement.getElement().toString()));
	};
	
cancel().click();

// Fenêtre : ClassicsCD
classicsJava(ANY,MAY_EXIT).close();
}
}

Cet exemple de script ouvre d'abord l'application Java Classics. 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 :

ITestDataList nameList;
nameList = (ITestDataList)nameCombo().getTestData("list")

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

java.util.Hashtable ht = nameCombo().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 :

ITestDataElementList nameListElements;
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 :

int listElemCount = nameList.getElementCount();

for (int i = 0; i < listElemCount; i++)
{
  nameListElement = nameListElements.getElement(i);
  System.out.println(nameListElement.getElement());
  
  // Cliquer sur chaque élément
	nameCombo().click();
	nameCombo().click(atText(nameListElement.getElement().toString()));
};

Retour d'informations