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

Puede utilizar el método getTestData de Functional Tester para acceder a valores de la lista de un recuadro combinado/control de lista.

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

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();
}
}

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 Realizar 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 muestra 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:

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

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

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

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:

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

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()));
};

Comentarios