我是RFT和Java编码的新手,我正在尝试使用带有Java的IBM-RFT工具自动化基于Web的应用程序。我必须单击HTML表格单元格中的链接。回放时,它可以点击某些单元格的链接,但对于某些单元格而言,它并没有点击单元格中超链接的上方或下方。它能够识别链接对象并打印出其属性,如" .text"," .href"但点击它时单击单元格内的空白区域而不是单击链接,这只发生在一些单元格上。:( 有没有更好的方法来处理这个?感谢任何人对此的帮助。
TestObject[] tablename = root.find(atDescendant(".class", "Html.TABLE", ".id", table_name), true);
GuiTestObject tablename_obj=(GuiTestObject)tablename[0];
TestObject cellObj = tablename_obj.find(atList(atChild(".class" , "Html.TBODY"),atChild(".class" , "Html.TR",".rowIndex", row),atChild(".class" , "Html.TD",".cellIndex",col)), false)[0];
TestObject cellObjClick = cellObj.find(atDescendant(".class","Html.A"))[0];
((GuiTestObject)cellObjClick).click();
请帮忙!
答案 0 :(得分:0)
我可以试着给你一些线索。 .click()方法计算对象的中心作为点击点。由于您可以获取.href属性并且它是正确的,因此您知道您有要单击的链接。可能是关于对象范围(用于计算对象内的点的对象周围的矩形)的某些东西在某种程度上来自DOM是不正确的。可能是计算的点击点实际上没有点击UI中链接的任何部分。您可以尝试使用特定的x,y坐标代替.click()。请注意,坐标相对于对象的左上角。所以你可以尝试.click(atPoint(x,y)),为x,y坐标选择一些值(像素),看看你是否有更好的运气。您也可以尝试获取链接的矩形(范围)拳头,看看它是否正确。我有时使用.click(atPoint(1,1))。我不确定你可以在RFT中使用对象资源管理器看到对象的矩形(你可以试试这个)。
答案 1 :(得分:0)
我更喜欢使用SelectGuiSubItem,如下例所示,有时点击 ((SelectGuiSubitemTestObject)textObj).select("<>");
尝试而不是点击()