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.