我对 Java 编程比较陌生,目前正在使用 IBM 的 Rational Functional Tester 工具(8.5 版)。在我开始之前,我的编程术语不是最好的,如果我在各个地方使用了错误的术语,请道歉。我还在 IBM 网站、该网站和其他各种网站上四处查看,但未能找到解决此问题的方法 :(
我目前正在尝试创建一个自动化测试流程(用于 Web 应用程序),但我正在努力处理 1 个特定部分。
场景如下: 在第 1 页,我有一组简单的是/否单选按钮。在第 2 页,我有一组列表框(1 列中的一组列表框,另一列中的另一组列表框,两组包含不同的信息)。第 2 页上看到的列表框的数量将取决于第 1 页上给出的是/否答案的数量。如果用户对每个问题都说“是”,那么数据驱动器中将会有大量列表框(接近 100)。
目前,我正在使用此代码来填充这些列表框:
TestObject[] listboxes
listboxes = html_application().find(atDescendant(".class", "Html.SELECT"), false);
for(int i = 0 < i < listboxes.length; i++)
{
GuiTestObject button = (GuiTestObject)listboxes[i];
RootTestObject boxes = getRootTestObject();
TestObject[] list = boxes.find(atDescendant(".class", "Html.SELECT"));
SelectItemGuiTestObject gto = (SelectGuiSubItemTestObject) list_viewFormList2View();
gto.select(dpString("Identity_Type"));
RootTestObject boxes2 = getRootTestObject();
TestObject[] list2 = boxes2.find(atDescendant(".class", "Html.SELECT"));
SelectItemGuiTestObject gto2 = (SelectGuiSubItemTestObject) list_viewFormList2View2();
gto2.select(dpString("Identity_Proven"));
}
代码继续以类似的方式继续运行,但由于两个主要原因,我无法让它适用于所有可能的情况:
A)直到运行时才知道对象位置。B) 第 1 页提供的信息决定了用户将在第 2 页看到的内容。
有没有更好的方法来做到这一点,然后添加几个重复的代码部分,如上所示?因为可能有很多很多列表框来驱动数据。
我已经在很多地方寻找解决方案,但我真的很难让这个特定的逻辑工作。
非常感谢您提供的任何帮助!