Mit der Methode "getTestData" Tabellenzellen durchlaufen

In diesem Abschnitt wird anhand eines Beispiels gezeigt, wie mit Hilfe der Functional Tester-Methode getTestData auf die Werte in den Zellen eines Raster-Steuerelements zugegriffen werden kann.

In diesem Beispiel werden Tests an der Java™-Anwendung Classics durchgeführt:

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) {
	//Start Classics Java Application
startApp("ClassicsJavaA");

//Navigate to Existing Order Grid
jmb().click(atPath("Order"));
jmb().click(atPath("Order->View Existing Order Status..."));

	  // Frame: View Order Status
nameComboB().click();
nameComboB().click(atText("Claire Stratus"));
ok().click();

// Frame: View Existing Orders
existingTable().click(atPoint(172,92));

//Get the data for the table
ITestDataTable orderTable = (ITestDataTable)existingTable().getTestData("contents");

//Display the available data types for the grid, total rows and columns.
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());

	  // Cycle through all rows
	  for (int row=0; row < orderTable.getRowCount();++row)
		  {
	      // Cycle through all columns
	      for (int col=0; col < orderTable.getColumnCount();++col)
		      {
	          // Print out values of cells at (row,col) coordinates
		          System.out.println ("Row " + row + ", " + orderTable.getColumnHeader(col) + ": " +orderTable.getCell(row,col) );
					}
			}
// Close the frame
close().click();

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

In diesem Beispiel navigieren Sie zur Anzeige "View Existing Orders" (Vorhandene Aufträge anzeigen) der Anwendung. Mit dem Code in diesem Beispiel werden die entsprechenden Werte aus den Zellen des Rasters ausgelesen und im Konsolfenster angezeigt.

Der erste Schritt zum Extrahieren der Daten besteht in der Anwendung der Methode getTestData, um die Daten aus dem Steuerelement auszulesen. Dazu wird folgende Syntax verwendet:

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

Auf Grundlage dieser Daten können Sie mit den Methoden getRowCount und getColumnCount die Gesamtanzahl der Zeilen und Spalten ermitteln. Sie können auch die Methode getTestDataTypes verwenden, um das Steuerelement abzufragen, welche Datentypen in der Tabelle verfügbar sind. Mit dem folgenden Code werden die Ergebnisse dieser Abfragen an das Konsolfenster gesendet.

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

Im nächsten Schritt werden die Werte der einzelnen Zellen gedruckt. Dabei wird zum Navigieren durch die Zeilen und Spalten des Rasters eine for-Schleife verwendet.

for (int row=0; row < orderTable.getRowCount();++row)
{
    // Cycle through all columns
    for (int col=0; col < orderTable.getColumnCount();++col)
    {
        // Print out values of cells at (row,col) coords
        System.out.println ("Row " + row + ", " +
        orderTable.getColumnHeader(col) + ": " +
        orderTable.getCell(row,col) );
    }
}

Im Beispielscript wird die Methode getCell zum Ausdrucken des Werts der aktuellen Zelle verwendet. Beachten Sie, dass mit der Methode getColumnHeader die aktuelle Spaltenüberschrift gedruckt wird. Beim Arbeiten mit einem Raster beginnt die Nummerierung sowohl von Zeilen als auch Spalten mit 0. Dies gilt jedoch nicht für die Methoden getRowCount und getColumnCount, bei denen die Nummerierung mit 1 beginnt.


Feedback