combobox/list コントロール (JComboBox) からのデータの抽出

Functional Tester の getTestData メソッドを使用して、ComboBox/List コントロールのリスト内の値にアクセスすることができます。

以下の例では、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();
}
}

この例では、まず Classics Java アプリケーションを開きます。ツリー中の作曲家およびアルバムを選択肢 (作曲家 = Schubert、アルバム = "Die Schone Muellerin")、「Place Order」 ボタンをクリックします。次の画面 (Member Login - ダイアログ) で、サンプル・コードが ComboBox から値のリストを抽出し、各リスト・エレメントでクリックできるようにコンソール・ウィンドウに表示します。

最初のステップは、getTestData メソッドを使用してコントロールからデータを抽出することです。

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

コントロールで使用可能なデータ型を見つけるため、以下のコードを使用します。

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

このデータ・セットが与えられると、リストのすべてのエレメントを含む配列を作成できます。これは以下のように行います。

ITestDataElementList nameListElements;
nameListElements = nameList.getElements();

手持ちのリスト・エレメントにより、各リスト・エレメントにアクセスするループを作成できます。 リスト・エレメントの数を判別するには、getElementCount メソッドを使用します。 リスト・エレメントの値を抽出するには、getElement メソッドが使用されます。 この例でそれを実行するコードは、次のようになります。

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

フィードバック