第 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 方法而设计的。
文章来源于领测软件测试网 https://www.ltesting.net/