Estrazione di dati da controllo elenco/casella combinata (JComboBox)

È possibile utilizzare il metodo getTestData di Functional Tester per accedere ai valori nell'elenco di un controllo elenco/casella combinata.

L'esempio riportato di seguito esegue il test dell'applicazione Java™ Classics:

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");

// 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
ITestDataList nameList;
ITestDataElementList nameListElements;
ITestDataElement nameListElement;

// Frame: 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);

// Get all elements
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());
	
	// Click on each element
	nameCombo().click();
	nameCombo().click(atText(nameListElement.getElement().toString()));
	};
	
cancel().click();

// Frame: ClassicsCD
classicsJava(ANY,MAY_EXIT).close();
}
}

Questo esempio apre prima l'applicazione Java Classics. Seleziona un compositore nella struttura ad albero e un album (composer = Schubert, album = "Die Schone Muellerin") e fa clic sul pulsante Invia ordine. Nel pannello successivo (finestra - Accesso utente) il codice di esempio estrae l'elenco dei valori dalla casella combinata e li visualizza nella finestra della console prima di fare clic su ciascun elemento dell'elenco.

Il primo passo è l'estrazione dei dati dalla console utilizzando il metodo getTestData:

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

Per conoscere i tipi di dati disponibili per un controllo, utilizzare il seguente codice:

java.util.Hashtable ht = nameCombo().getTestDataTypes();

Ottenuta questa serie di dati, è possibile creare una schiera che contiene tutti gli elementi dell'elenco. Ciò viene eseguito nel modo indicato di seguito:

ITestDataElementList nameListElements;
nameListElements = nameList.getElements();

Una volta che si dispone degli elementi dell'elenco, è possibile creare un loop che accede a ciascun elemento dell'elenco. Per determinare il numero di elementi dell'elenco, utilizzare il metodo getElementCount. Per estrarre il valore dell'elemento dell'elenco, viene utilizzato il metodo getElement. In questo esempio, ciò viene eseguito utilizzando il seguente codice:

int listElemCount = nameList.getElementCount();

for (int i = 0; i < listElemCount; i++)
{
  nameListElement = nameListElements.getElement(i);
  System.out.println(nameListElement.getElement());
  
  // Click on each element
	nameCombo().click();
	nameCombo().click(atText(nameListElement.getElement().toString()));
};

Feedback