使用 UFT/QTP 单击 WebTable 中的特定行

Clicking on specific row in a WebTable using UFT/QTP

我很难单击 Web 中的特定行 Table。我的代码找到了正确的行,但是当我使用 Child Item 方法时它抱怨找不到对象。这是我的代码:

Desc = "Record to click"

If Browser("B").Page("P").WebTable("W").exist(10) Then

    totalRows = Browser("B").Page("P").WebTable("W").RowCount()
    For RowNum = 1 To totalRows
        If aDesc = Browser("B").Page("P").WebTable("W").GetCellData(RowNum,2) Then
            Browser("B").Page("P").WebTable("W").ChildItem(RowNum,2,"WebElement",0).click
        End If
    Next
End If

我窥探到它是 Web 元素的行中的值,我尝试使用 Link- 没有用。我也尝试 Child Item(aDesc,2,"WebElement",0)- 也没有用。我使用 0 作为索引,因为行中只有一个元素 - 简单文本。我在许多其他测试中不断收到此错误。在极少数情况下,这种方法在某些测试中有效,但大多数时候它会抱怨缺少对象。
非常感谢您的帮助!

我也遇到过。当我研究时,我发现在一些旧的 HP 博客中,ChildItem 方法不能正确地与 WEBElement 一起使用,但那是针对 QTP 9.0,而我使用的是 12.02.Anyhow,我无法弄清楚为什么它发生了,并最终使用了以下 -

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

附带说明,为了检查特定行和列中是否存在 webelement/link,请使用以下命令。

 Browser("B").Page("P").WebTable("W").ChildItemCount(2,2,"WebElement")

Getcell 数据将 return 您所需行和列中的任何内容,而不管它是什么(link、webelement 等),因此您对 if 循环的假设会出错。

试试这个:

浏览器("B").Page("P").WebTable("W").object.rows(rownum-1).cells(colnum-1).点击

我试图点击 table 中的第一个 link,而这段代码点击了项目

Set oDesc = Description.Create() 
oDesc("html tag").Value = "A"
Set rc = Browser("B").Page("A").WebTable("html id:=gridTable").ChildObjects(oDesc)
rc(0).Click
'num = rc.Count() 'get the number of link in a page 
'For i=0 to num-1 
'ref = rc(0).GetROProperty("href") 'get the “href”propety of the i th link
'MsgBox ref
'Next

Browser("B").Page("A").WebTable("html id:=gridTable").ChildItem(2,8,"Link",0).click

成功点击了我需要的link