如何点击webtable特定行

时间:2017-11-14 20:23:07

标签: hp-uft

我有这个代码点击第一行和第一列就好了。

Set oExcptnDetail = Description.Create
oExcptnDetail("micclass").value = "WebElement"
oExcptnDetail("html tag").value = "TD"
Set chobj=Browser("").Page("").WebTable("Code").ChildObjects(oExcptnDetail)
chobj(0).Click 

如何使用上面的代码点击特定行?

我使用了无效的childitem。

set objLink = Browser("bb").Page("bb").WebTable("Name_2").ChildItem(4, 1, "WebElement",0)

更新1

我尝试了以下代码。它没有点击第3行第1行。

Set desc = Description.Create
desc("html tag").value = "TR" 
Set rows = table.ChildObjects(desc)
desc("html tag").value = "TD"
Set cells = rows(3).ChildObjects(desc)
Set TableCell = cells(1)
Browser("").Page("").WebTable(TableCell).Click

1 个答案:

答案 0 :(得分:1)

UFT的ChildItem函数会在单元格中返回包含元素,这意味着它不会返回所在的TD 细胞,只有它的后代。

为了获得单元格本身,你应该使用WebTable.Cell,这是UFT中一个相对较新的功能,你可能没有它。如果你不这样做,你应该能够编写这样的帮助函数(注意我写这篇文章而不检查它,可能需要额外的工作和错误处理):

Function TableCell(table, nRow, nCol)
    Set desc = Description.Create

    desc("html tag").value = "TR" ' Or "T[RH]" to capture TH too
    Set rows = table.ChildObjects(desc)

    desc("html tag").value = "TD"
    Set cells = rows(nRow).ChildObjects(desc)

    Set TableCell = cells(nCol)
End Function

如果您愿意,可以使用RegisterUserFunc将其用作WebTable.Cell

然后你可以这样使用它:

TableCell(Browser("").Page("").WebTable("Code"), 4, 1).Click

或者,如果您使用RegisterUserFunc将其注册为Cell

Browser("").Page("").WebTable("Code").Cell(4, 1).Click