Iterando por Meio de Células de Tabela Utilizando o Método getTestData

Este tópico fornece um exemplo de como utilizar o método getTestData do Functional Tester para acessar os valores nas células de um controle de grade.

O exemplo testa em relação ao aplicativo Classics Java™:

import resources.GetGridDataExampleHelper;
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 GetGridDataExample extends GetGridDataExampleHelper{
/**
* Script Name   : GetGridDataExample
* Generated     : Jul 14, 2006 3:05:22 PM
* Description   : Functional Test Script
* Original Host : WinNT Version 5.1  Build 2600 (S)
* 
* @since  2006/07/14
* @author Administrator
*/
public void testMain (Object[] args)
 {
	//Iniciar o Aplicativo Classics Java
startApp("ClassicsJavaA");

//Navegar até a Grade de Pedidos Existente
jmb().click(atPath("Order"));
jmb().click(atPath("Order->View Existing Order Status..."));

	  // Quadro: Visualizar Status do Pedido
nameComboB().click();
nameComboB().click(atText("Claire Stratus"));
ok().click();

// Quadro: Visualizar Pedidos Existentes
existingTable().click(atPoint(172,92));

//Obter os dados para a tabela
ITestDataTable orderTable = (ITestDataTable)existingTable().getTestData("contents");

//Exibir os tipos de dados disponíveis para a grade, total de linhas e colunas.
System.out.println ("Available Data Types: " + existingTable().getTestDataTypes());
System.out.println ("Total Rows in table : " + orderTable.getRowCount());
System.out.println ("Total Cols in table : " + orderTable.getColumnCount());

	  // Percorrer todas as linhas
	  for (int row=0; row < orderTable.getRowCount();++row)
		  {
// Percorrer todas as colunas	      for (int col=0; col < orderTable.getColumnCount();++col)
		      {
	          // Imprimir valores de células nas coordenadas (row,col)
		          System.out.println ("Row " + row + ", " + orderTable.getColumnHeader(col) + ": " +orderTable.getCell(row,col) );
					}
			}
// Fechar o quadroclose().click();

// Quadro: ClassicsCDclassicsJava(ANY,MAY_EXIT).close();
}
}

Esse exemplo navega para a tela "Visualizar Pedidos Existentes" do aplicativo. O código nessa amostra extrai os valores de todas as células da grade e os exibe na janela de console.

A primeira etapa para extrair os dados é utilizar o método getTestData para extrair os dados do controle. Isso é feito com a seguinte sintaxe:

ITestDataTable orderTable;orderTable = (ITestDataTable)existingTable().
  getTestData("contents");

Com esse datapool, é possível determinar o número total de linhas e colunas utilizando os métodos getRowCount e getColumnCount. Também é possível perguntar ao controle quais tipos de dados estão disponíveis na tabela utilizando os getTestDataTypes. O código a seguir envia os resultados dessas consultas para a janela de console.

System.out.println ("Available Data Types: " +
     existingTable().getTestDataTypes());
System.out.println ("Total Rows in table : " +
     orderTable.getRowCount());System.out.println ("Total Cols in table : " +
     orderTable.getColumnCount());

A próxima etapa é imprimir os valores das células individuais, que é feito utilizando um loop for para percorrer as linhas e colunas da grade:

for (int row=0; row < orderTable.getRowCount();++row)
{
    // Percorrer todas as colunas    for (int col=0; col < orderTable.getColumnCount();++col)
    {
        // Imprimir valores de células nas coordenadas (row,col)        System.out.println ("Row " + row + ", " +
        orderTable.getColumnHeader(col) + ": " +
        orderTable.getCell(row,col) );    }
}

O script de exemplo utiliza o método getCell para imprimir o valor da célula atual. Observe também que o método getColumnHeader imprime o cabeçalho da coluna atual. Ao trabalhar com uma grade, a numeração para linhas e colunas inicia em 0. Isso não se aplica aos métodos getRowCount e getColumnCount onde a numeração inicia em 1.


Feedback