Unfortunately QTP has lousy debug capabilities in this area so I started researching ways in which you can display the properties of QTP objects and I came across this useful post.
I tweaked this a little bit to produce a function that prints out all of the object properties to the debug window. When combined with some code to iterate the childobjects you can quickly see what all the properties are. This has been tested with QTP 11.
The code
First of all, here's the function to print out all of the object properties
Sub PrintObjectProperties(objQTPObject) 'This article helped with this function: 'http://motevich.blogspot.com/2008/11/qtp-object-indentification-properties.html Const HKEY_LOCAL_MACHINE = &H80000002 Dim objReg, strKeyPath Dim arrObjectProperties, i Set objReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv") strKeyPath = "SOFTWARE\Mercury Interactive\QuickTest Professional\MicTest\Test Objects\" & objQTPObject.GetROProperty("micclass") & "\Properties" objReg.EnumValues HKEY_LOCAL_MACHINE, strKeyPath, arrObjectProperties 'now we've got an array of the properties, output all of the runtime properties Print objQTPObject.ToString Print "micclass:" & objQTPObject.GetROProperty("micclass") If IsNull(arrObjectProperties) Then Print "** Object RO Properties could not be found for this class**" Else For i = 0 to UBound(arrObjectProperties) Print arrObjectProperties(i) & ":" & objQTPObject.GetROProperty(arrObjectProperties(i)) Next End If End Sub
Then combine with some code that retrieves a collection of childobjects from a QTP object:
Dim objDesc,objDescCol Dim objQTPObject Dim n Set objQTPObject = Browser("A").Page("B") Set objDesc = Description.Create 'Add any other description filters here Set objDescCol = objQTPObject.ChildObjects(objDesc) If objDescCol.count > 0 Then For n = 0 to (objDescCol.count-1) Print "Child Object " & n Call PrintObjectProperties(objDescCol(n)) Print "" Next End If
The result is that all of the properties of the children are output to the print window.
No comments:
Post a Comment