Rational Functional Tester,如何动态识别HTML表中的链接?

时间:2012-05-29 22:09:29

标签: rft

我的HTML看起来像这样:

<table summary="History of xxxxxx"><thead><tr><th>Date Started</th><th>Date Updated</th><th>Yyyyyyyy</th><th>Summary Report</th>  
<th>Full Report</th></tr></thead><tbody><tr class="odd"><td>05/29/2012</td><td>05/29/2012</td>  
<td><a href="/xxxxx/yyyyy/traversal/e3230f12-dea6-4fd9-b4ed-dd60deb65aa3">Complete  </a>  
<a href="/xxxxx/yyyyy/delete">Delete</a></td><td/><td/></tr><tr class="even"><td>05/29/2012</td>  
<td>05/29/2012</td><td/><td><a href="/xxxxx/summaryreport/view/280e30fe-f7dc-4099-b83e-28e02d64f68f">View</a>  
<a href="/xxxxx/summaryreport/save/280e30fe-f7dc-4099-b83e-28e02d64f68f">Save</a>  
<a href="/xxxxx/summaryreport/print/280e30fe-f7dc-4099-b83e-28e02d64f68f">Print</a></td><td>  
<a href="/xxxxx/fullreport/view/280e30fe-f7dc-4099-b83e-28e02d64f68f">View</a>  
<a href="/xxxxx/fullreport/save/280e30fe-f7dc-4099-b83e-28e02d64f68f">Save</a>  
<a href="/xxxxx/fullreport/print/280e30fe-f7dc-4099-b83e-28e02d64f68f">Print</a></td></tr></tbody></table>

我可以使用以下脚本片段打印表的内容:

ITestDataTable kontents = (ITestDataTable) table_dateStartedDateUpdatedAs().getTestData("contentswithchildren");

System.out.println (table_dateStartedDateUpdatedAs().getTestDataTypes());

System.out.println ("Total Rows in table : " + kontents.getRowCount());
System.out.println ("Total Cols in table : " + kontents.getColumnCount());

for (int row=0; row < kontents.getRowCount();++row)
{
for (int col=0; col < kontents.getColumnCount();++col)
{
    System.out.println("contents("+row+","+col+")=\""+kontents.getCell(row,col)+"\"");
}
}

但是如何将超链接转换为自己的变量呢?三个超链接“查看保存打印”都在一个单元格中。

- 谢谢,

- Mike Jr。

1 个答案:

答案 0 :(得分:2)

使用find()功能。

请查看在线RFT帮助中的searching for test objects文章。

您的表格的示例代码如下所示:

TestObject[] foundSaveLinks = table_dateStartedDateUpdatedAs().find(atDescendant(".tag", "A", ".text", "Save"));
GuiTestObject saveLink = (GuiTestObject)foundSaveLinks[0];
saveLink.Click();

您可以将此更复杂,例如,如果您需要将搜索/查找限制为特定的表格单元格。我上面的示例将找到作为表格后代的所有“保存”链接。