10-10-2013, 07:26 PM
Anand:
I am including two subs which will find all cells that are different between the two web tables. I have hard coded the number of rows and columns. You will need to modify those values.
Both programs will print which rows and cells are different.
Method 1 using the standard OR technique. Method 2 uses the DOM technique. The article that caused me to work with DOM is http://qtpprashanth.blogspot.com/2011/03...h-qtp.html.
In my experiments the web tables had 20 rows and 6 columns. The OR technique took around 100 sec while the DOM method took around 5 sec.
hth,
Parke
I am including two subs which will find all cells that are different between the two web tables. I have hard coded the number of rows and columns. You will need to modify those values.
Both programs will print which rows and cells are different.
Method 1 using the standard OR technique. Method 2 uses the DOM technique. The article that caused me to work with DOM is http://qtpprashanth.blogspot.com/2011/03...h-qtp.html.
In my experiments the web tables had 20 rows and 6 columns. The OR technique took around 100 sec while the DOM method took around 5 sec.
hth,
Parke
Code:
Sub Compares_rows_of_two_web_tables
startTime = timer
Dim table1_arr(21)
str = ""
For nrow = 1 to 21
For ncol = 1 to 6
str = str & ";:" & Browser("Browser").Page("Page").Frame("frSheet").WebTable("1").GetCellData(nrow,ncol)
Next
table1_arr(nrow) = str
str = ""
Next
'For i = lbound(table1_arr) to ubound(table1_arr)
' print "row " & i & " is " & table1_arr(i)
'Next
Dim table2_arr(21)
str = ""
For nrow = 1 to 21
For ncol = 1 to 6
str = str & ";:" & Browser("Browser_2").Page("Page").Frame("frSheet").WebTable("1").GetCellData(nrow,ncol)
Next
table2_arr(nrow) = str
str = ""
Next
'For i = lbound(table2_arr) to ubound(table2_arr)
' print "row " & i & " is " & table2_arr(i)
'Next
For rowNum = 1 to UBound(table1_arr)
If table1_arr(rowNum) <> table2_arr(rowNum) Then
print "row " & rowNum & " are not the same"
End If
Next
For rowNum = 0 to UBound(table1_arr)
If table1_arr(rowNum) <> table2_arr(rowNum) Then
print "row " & rowNum + 1 & " are not the same"
tabl1_row_arr = split(table1_arr(rowNum),";:")
tabl2_row_arr = split(table2_arr(rowNum),";:")
For k = LBound(tabl1_row_arr) to UBound(tabl1_row_arr)
If tabl1_row_arr(k) <> tabl2_row_arr(k) Then
print "for row, " & rowNum & ", cell " & k & " are not the same in the two tables."
end If
Next
End If
Next
endtime = timer
runTime = endTime - startTime
print "runTime = " & runTime
End Sub ''// Compares_rows_of_two_web_tables
Code:
Sub Compares_rows_of_two_web_tables_DOM_2
Set oTable = Browser("Browser").Page("Page").Frame("frSheet").WebTable("1")
'innertext = oTable.Object.rows(3).cells(2).innertext
'print innertext
Dim table1_arr(20)
str = ""
For nrow = 0 To 20
For ncol = 0 to 5
str = str & ";:" & oTable.Object.rows(nrow).cells(ncol).innertext
Next
startTime = timer
table1_arr(nrow) = str
str = ""
Next
Set oTable2 = Browser("Browser_2").Page("Page").Frame("frSheet").WebTable("1")
'innertext = oTable2.Object.rows(3).cells(5).innertext
'print innertext
Dim table2_arr(20)
str = ""
For nrow = 0 To 20
For n = 0 to 5
str = str & ";:" & oTable2.Object.rows(nrow).cells(CInt(n)).innertext
Next
table2_arr(nrow) = str
str = ""
Next
For rowNum = 0 to UBound(table1_arr)
If table1_arr(rowNum) <> table2_arr(rowNum) Then
print "row " & rowNum + 1 & " are not the same"
End If
Next
'endtime = timer
'runTime = endTime - startTime
'print "runTime = " & runTime
For rowNum = 0 to UBound(table1_arr)
If table1_arr(rowNum) <> table2_arr(rowNum) Then
print "row " & rowNum + 1 & " are not the same"
tabl1_row_arr = split(table1_arr(rowNum),";:")
tabl2_row_arr = split(table2_arr(rowNum),";:")
For k = LBound(tabl1_row_arr) to UBound(tabl1_row_arr)
If tabl1_row_arr(k) <> tabl2_row_arr(k) Then
print "for row, " & rowNum + 1 & ", cell " & k & " are not the same in the two tables."
End If
Next
End If
Next
endtime = timer
runTime = endTime - startTime
print "runTime = " & runTime
End Sub ''// Compares_rows_of_two_web_tables_DOM_2