TestComplete – Handling Web Browser (3)
Parent page: GUI Recognition with TestComplete
Close, minimize, maximize, move, resize browser window
Description
A WebForm (Page, Frame, table, etc.) can not be operated same way as window. The first thing function does is iterating upwards the hierarchy to access Process object, which is used to retrieve browser window reference.
In the example presented, IEFrame property of the Process object is used which corresponds to Internet Explorer page. Use UIPage property to access Firefox page.
Implementation
Public Const syncTimeShort = 5
Public Function wbSetBrowser(ByRef objWebParent, ByVal objParameter)
Dim boolRC
Dim sTypeName
Dim sWinState, sURL, intX, intY
Dim objGUIParent, objBrowserWindow
'Go backwards to Process level parent
Set objGUIParent = objWebParent
Do While True
If objGUIParent.Parent is Nothing Then
Exit Function
End If
If InStr(LCase(objGUIParent.Name),"process") > 0 Then
Exit Do
End If
Set objGUIParent = objGUIParent.Parent
Loop
'Get Window reference
''Note. IEFrame (MSIE) or UIPage (Firefox)
Set objBrowserWindow = objGUIParent.IEFRame(0)
'Verify parameters
sTypeName = TypeName (objParameter)
If sTypeName <> "Dictionary" Then
Set objParameter = CreateObject("Scripting.Dictionary")
End If
'Retrieve arguments
sWinState = UCase(objParameter.Item("state"))
If sWinState = "" Then
sWinState = "FOCUS"
End If
Select Case sWinState
Case "CLOSE"
On Error Resume Next
objBrowserWindow.Close(syncTimeShort*1000)
On Error GoTo 0
Case "FOCUS"
On Error Resume Next
Call objBrowserWindow.Activate()
On Error GoTo 0
Case "MIN"
On Error Resume Next
objBrowserWindow.Minimize
On Error GoTo 0
Case "MAX"
On Error Resume Next
objBrowserWindow.Maximize
objBrowserWindow.Activate
On Error GoTo 0
Case "RESTORE"
On Error Resume Next
objBrowserWindow.Restore
objBrowserWindow.Activate
On Error GoTo 0
Case "RESIZE"
On Error Resume Next
intX = IntVal(objParameter.Item("p.width"))
intY = IntVal(objParameter.Item("p.height"))
Call objBrowserWindow.Position(objBrowserWindow.Left, objBrowserWindow.Top, intX, intY)
objBrowserWindow.Activate
On Error GoTo 0
Case "MOVE"
On Error Resume Next
intX = IntVal(objParameter.Item("p.x"))
intY = IntVal(objParameter.Item("p.y"))
Call objBrowserWindow.Position(intX, intY, objBrowserWindow.Width, objBrowserWindow.Height)
objBrowserWindow.Activate
On Error GoTo 0
Case "NAVIGATE"
sURL = objParameter.Item("url")
On Error Resume Next
Call objBrowserWindow.Parent.ToURL(sURL)
On Error GoTo 0
Case Else
On Error Resume Next
objBrowserWindow.Activate
On Error GoTo 0
End Select
End Function

