1. WebTable or html grid are integral part of html pages and a lot of application data is organised in WebTables. QTP provides different methods to interact with the webtable in the web application. In this remaining article, we will discuss key points to interact with the webtables.
Below image shows how a webTable is divided into column and rows and data can be extracted from cell in the web table.
2. Verify if the table exist in the application
istbleExist=Browser("qaaqtp").Page("title:=.*").WebTable("name:= DataTable").exist
3. In case the table exist in the Page, we can get the count of rows and columns in the application as shown below:
iRowCnt=Browser("qaautmationqtp").Page("title:=.*").WebTable("name:= DataTable").RowCount '' for each of the row, get the column count for each row For rownum=1 to iRowCnt iColCnt=Browser("qaautmationqtp").Page("title:=.*").WebTable("name:=DataTable").ColumnCount(rownum) MsgBox iColCnt Next
4. Now we know the number of rows and columns in the table, we can extract cell information using the code below:
CellData= Browser("qaautmationqtp").Page("title:=.*").WebTable("name:=DataTable").GetCellData(rownum,colcnt)
5. We can perform action on object of specific type in a cell in the webTable based on the cell
ibtnCnt=Browser("qaautmationqtp").Page("title:=.*").WebTable("name:=DataTable") .ChildItemCount(4,3,"WebButton")
6. This will click on the 2nd webbutton in row 4 and column 3 of the webtable.
Browser("qaautmationqtp").Page("title:=.*").WebTable("name:=DataTable").ChildItem(4,3,"WebButton",1).click
7. Using HTML DOM also, we can get count of objects in a webtable
ielemCnt = Browser("Google").Page("title:=.*").WebTable("name:=DataTable").object.getElementsbyTagName(strTagName).length
8. We can get row count of element based on the cell text as below:
irownum = object.GetRowWithCellText ("text to search",columnnum, startfromrownum)
9. We can work with webtable together with dynamic descriptive programming as shown below:
Set objDesc = Description.Create objDesc("micclass").value = "WebElement" objDesc("html tag").value = "TD" Set childobjdesc=Browser("Google").Page("title:=.*").WebTable("name:=DataTable")ChildObjects(objDesc)
10. Using ChildItemCount and childItem, we can extract information from webTable as shown below:
Public Function findObjectinWebTable(strobjType,iRow,iCol) ''get child count of specific object type oChildCnt=Browser("qaautmationqtp").Page("title:=.*").WebTable("name:=DataTable").ChildItemCount(iRow,iCol,strobjType) If oChildCnt >0 ''Perform action based on object type Set ChldItem = Browser("qaautmationqtp").Page("title:=.*").WebTable("name:=DataTable").ChildItem(iRow,iCol,strobjType,0) If (strobjType = "Link" or strobjType ="WebEdit") Then ChldItm.Click ElseIf(stobjType = "WebCheckBox") Then ChldItm.Set "ON" End If End Function