Clicking on specific row in a WebTable using UFT/QTP

hp-uftqtpvbscript

I am having hard time clicking specific row in a Web Table. My code finding proper row, but when I use Child Item method it complains that Object is not found. Here is my code:

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

I spied on the value in the row it is Web Element, I tried to use Link- didn't work. Also I tried to Child Item(aDesc,2,"WebElement",0)– didn't work either. I used 0 for the index because there is only one element in the row – simple text. I keep getting this error in many other tests. On rare occasion this approach works in some tests, but most of the time it complains for absence of object.
Thank you very much for your help!

Best Answer

It happened with me as well. When I researched, I found in some of the old HP blogs that ChildItem method does not works correctly with WEBElement, but that was for QTP 9.0, and I was using 12.02.Anyhow, I can't figure out why its happening, and ended up using the following -

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

On a side note, in order to check a webelement/link exist in a certain row and column, use the following.

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

Getcell data will return you anything that is in the desired row and column irrespective of what it is (link,webelement etc) and hence your assumption of if loop will go wrong.

Related Topic