QTP – Web Tables
A Table containing a number of rows and columns
· Rows
· Columns
· Cell
· Cell Data
· RowCount
· ColumnCount(r)
· GetCellData
· GetRowWithCellText
· CellText
· CellTextByContent
· TextCellExists
'**************************************************************************
'Purpose: Get  Column
headers of a table & write it to a excel sheet
'**************************************************************************
DataTable.AddSheet "MySheet"
Set objWebTable=Browser("Gmail: Email from
Google").Page("Gmail - Inbox").WebTable(“t")
vrRC=objWebTable.RowCount 'To get the number of rows of a
table from a page
vrCC=objWebTable.ColumnCount(1) 'To get the number of
columns of a table from a page
MsgBox "Row Count is  
" & vrRC
MsgBox "Column Count is   " & 
vrCC 
For i=1 to C
      vrColName=objWebTable.GetCellData(1,i)
      MsgBox
"Name of column is   "&
vrColName
     
DataTable.GetSheet("MySheet").AddParameter
vrColName,""
Next
'***********************************************************************
'Getting Cell Data from a Web Table
'Method used is GetCellData(Row#,Col#)
'***********************************************************************
Set vrText = Browser("Gmail: Email from
Google").Page("Gmail -
Inbox").WebTable("t").GetCellData(1, 1)
 MsgBox "Text
contains: " & vrText
Example:
Set objWebTable= Browser("Gmail: Email from
Google").Page("Gmail - Inbox").WebTable("t")
For i=1 to vrRC
     
vrCC=objWebTable.ColumnCount(i)
      For j=1 to vrCC
           
vrCellData=objWebTable.GetCellData(i,j)
            MsgBox
"Data Contains in Cell:  "
& vrCellData
      Next
Next
'**************************************************************
'Getting Cell Data From Web Tables and writing to an excel
'**************************************************************
Set objWebTable= Browser("Gmail: Email from
Google").Page("Gmail - Inbox").WebTable("t")
For i=1 to vrRC
     
Datatable.GetSheet("MySheet").SetCurrentRow(i)
      vrCC=objWebTable.ColumnCount(i)
      For j=1 to CC
           
vrCellData=objWebTable.GetCellData(i,j)
           
DataTable.GetSheet("MySheet").GetParameter(j).Value=vrCellData
            MsgBox
"Data Contains in Cell:  "
& vrCellData
      Next
Next
'****************************************************************
'Working Gmail Web Table 
'*****************************************************************
Set objWebTable=Browser("Gmail: Email from
Google").Page("Gmail - Inbox").WebTable("t")
vrRC=objWebTable.RowCount 'To get the number of rows of a
table from a page
vrCC=objWebTable.ColumnCount(1) 'To get the number of
columns of a table from a page
  MsgBox "Row Count is  
" & vrRC
  MsgBox "Column Count is   " & 
vrCC 
DataTable.AddSheet("MySheet")
For i=1 to vrCC
     
vrColName=oTable.GetCellData(1,i)
         MsgBox
"Column Name is:    "&
vrColName
     
DataTable.GetSheet("MySheet").AddParameter
vrColName,""
Next
For i=1 to vrRC
     
Datatable.GetSheet("MySheet").SetCurrentRow(i)
     
vrCC=oTable.ColumnCount(i)
      For j=1 to vrCC
           
vrColData=oTable.GetCellData(i,j)
           
DataTable.GetSheet("MySheet").GetParameter(j).Value=vrColData
            MsgBox
"Column Data     " &
vrColData
      Next
Next 
'**********************************************************
'Reading an excel sheet and passing cell data as a link
''**********************************************************
vrParamCount =
DataTable.GetSheet("Sheet1").GetParameterCount
vrRowCount =
DataTable.GetSheet("Sheet1").GetRowCount
      For j=1 to
vrRowCount
            For i=1 to
vrParamCount
                                                                                       vrColValue=DataTable.GetSheet("Sheet1").GetParameter(i).ValueByRow(j)
                MsgBox "Column Value:  " & vrColValue  
            Next
 Next 
      For j=1 to
vrRowCount
          
vrRCValue=DataTable.GetSheet("MySheet").GetParameter(3).ValueByRow(j)
            MsgBox
"Row Column Value    "&
vrRCValue 
       Next 
''********************************************************************
'To get the no# of web tables existing on page
'********************************************************************
Set objWebTable=Description.Create
objWebTable("micClass").Value="WebTable"
objWebTable("html tag").Value="TABLE"
objWebTable("text").Value=".*"
Set objWebTableChild=Browser("Gmail: Email from
Google").Page("Gmail - Inbox").ChildObjects(objWebTable)
vrNumOfTables=objWebTableChild.count
MsgBox "Total Number of Tables: " &
vrNumOfTables
For i=0 to vrNumOfTables-1
     
vrTabName=objTableChild(i).GetROProperty("name")
     
vrTabCols=objTableChild(i).GetROProperty("cols")
     
vrTabRows=objTableChild(i).GetROProperty("rows")
      vrTabText=objTableChild(i).GetROProperty("text")
      MsgBox
"Table Name:    "&
vrTabName
      MsgBox
"Table Column:     "&
vrTabCols
      MsgBox
"Table Rows:    "&
vrTabRows
      MsgBox
"Tabl eText:    "&
vrTabText
Next 
'************************************************************
'Get Row Number with CellText
'************************************************************
'Scenario : When we want to search for Row Number for any
specific text in a WebTable.
vrRowNumber = Browser("Gmail: Email from
Google").Page("Gmail - Inbox").WebTable("html
tag:=TABLE").GetRowWithCellText("Jackiechen")
MsgBox vrRowNumber
'************************************************************
'Miscellaneous: Undocumented QTP Web-table Methods
'************************************************************
Method 1:  CellText
This method works as same as GetCellData method.
MsgBox Browser("Gmail: Email from
Google").Page("Gmail -
Inbox").WebTable("t").CellText(1,1)  
Method 2: 
CellTextByContext 
This method returns the text within a cell delimited by a
character. We can retrieve the text before (or) after the delimiter using this
method.
Eg.: Consider a cell having the text “Jackie;Chen”. Here “;’
is the delimiter
Code to retrieve the text before the delimiter
MsgBox Browser("Gmail: Email from
Google").Page("Gmail -
Inbox").WebTable("t").CellTextByContext(1,1,"",";")  
Code to retrieve the text after the delimiter
MsgBox Browser("Gmail: Email from
Google").Page("Gmail -
Inbox").WebTable("t").CellTextByContext(1,1,";")  
Method 3: 
TextCellExist
This method checks whether a text exists in a cell or not.
 It returns true, if
the input text exists in the cell, else it returns false.
 Rather than using
GetCellData method and then comparing the result with the input text, we can
achieve it using this simple method.
MsgBox Browser("Gmail: Email from
Google").Page("Gmail -
Inbox").WebTable("t").TextCellExist(1,1,"jackie")  
 
very useful... Thank you
ReplyDelete