第 2 部分:使用 TestObject.find 方法的實際應用程序的實例
試驗各種屬性將幫助您確定哪個屬性在尋找應用程序中的對象時工作的最好。您一旦了解了 find 方法如何幫助您動態定義控件,您就可以開始編寫 getter 方法了,這樣您就可以不依賴被記錄的對象地圖(Object Map)來定位對象了。
例如,對于 Place an Order 對話框,您可能決定將控件定義為對話框的一部分。在這種情況下,您應首先找到該對話框,然后,到對話框中找您希望修改的控件。對于該情境,您的代碼設計應該如下所示:
public class PlaceAnOrder { public static GuiTestObject getDialog() { RootTestObject root = getRootTestObject(); TestObject[] to = root. find(atDescendant("title", "Place an Order")); return new GuiTestObject (to[0]); } public static GuiTestObject getButtonCancel() { TestObject[] to = getDialog() .find(atDescendant("class", "javax.swing.JButton", "text", "Cancel")); return new GuiTestObject(to[0]); } } |
這里是一個說明如何在腳本中使用這些方法的實例:
public void testMain(Object[] args) { // Find the Place an Order dialog GuiTestObject dialogPlaceAnOrder = PlaceAnOrder.getDialog(); GuiTestObject cancelOrder = PlaceAnOrder.getButtonCancel(); cancelOrder.click (); } |
![]() ![]() |
![]()
|
要找到更多通用的按鈕標簽,例如,Cancel,您可能需要開發更多能夠找到存在于您的應用程序中的任意按鈕的通用方法。例如,您可以使用getButton("Cancel", placeAnOrderDialog)
,在此,來源是父窗口。對于第二個情景,您的設計應該類似于此實例:
public class ClassicsJavaUI { public static GuiTestObject getButton(String buttonName, TestObject parent) { TestObject[] to = parent.find(SubitemFactory.atDescendant ("class", "javax.swing.JButton", "text", buttonName)); return(new GuiTestObject(to[0])); } public static GuiTestObject getButton(String buttonName) { RootTestObject root = RationalTestScript.getRootTestObject(); TestObject[] to = root.find(SubitemFactory.atDescendant ("class", "avax.swing.JButton", "text", buttonName)); return (new GuiTestObject(to[0])); } public static GuiTestObject getDialog(String dialogName) { RootTestObject root = RationalTestScript.getRootTestObject(); TestObject[] to = root.find(SubitemFactory.atDescendant ("class", "javax.swing.JFrame", "title", dialogName)); System.out.println (to.length); return (new GuiTestObject (to[0])); } } public class PlaceOrderWindow { public static GuiTestObject getDialog() { return ClassicsJavaUI.getDialog("Place an Order"); } public static GuiTestObject getButtonPlaceOrder() { return ClassicsJavaUI.getButton("Place an Order", getDialog()); } } |
這里是一個您可以如何在腳本中使用這些方法的實例,或者更適當地說,利用定義了 Place An Order 對話框的類:
public void testMain(Object[] args) { GuiTestObject dialog = PlaceOrderWindow.getDialog(); GuiTestObject buttonPlaceOrder = PlaceOrderWindow.getButtonPlaceOrder(); buttonPlaceOrder.click (); } |
您測試的應用程序將確定您為尋找控件如何定義方法。下面部分是一個實際的例子,說明了系統是如何圍繞 find 方法而設計的。
文章來源于領測軟件測試網 http://www.k11sc111.com/