如何在使用 UFT/QTP 时放大或缩小网页

How to Zoom in or Zoom out in a webpage while using UFT/QTP

我想使用 UFT 控制被测应用程序网页的放大和缩小功能。这是必需的,因为缩放级别会动态变化并且很难识别对象。 我找到了一个代码,但如果您需要在一个实例或开始时更改缩放级别,它会很有用。下面是代码

Function ChangeIEZoom
Dim intZoomLevel, objIE
intZoomLevel = 110
 Const OLECMDID_OPTICAL_ZOOM = 63
 Const OLECMDEXECOPT_DONTPROMPTUSER = 2
 Set objIE = CreateObject("InternetExplorer.Application")
 objIE.Visible = True
 objIE.Navigate ("www.google.com")
 While objIE.Busy = True
 wait 5
 Wend
 objIE.ExecWB OLECMDID_OPTICAL_ZOOM, OLECMDEXECOPT_DONTPROMPTUSER, CLng(intZoomLevel), vbNull
End Function

使用此代码,它会打开一个新的浏览器并将其导航到 URL。

我不希望它创建浏览器的新实例。 我需要的是它更改已经在测试执行中的同一页面上的缩放级别,以及在开始时不知道需要更改缩放级别的页面,并且根据它标识的事实,它可能需要也可能不需要更改某些对象。

有没有人遇到同样的问题或有解决办法?

我找到了一个解决方案 - 结合您在评论中提到的内容。如果您想更改正在处理的当前网页的缩放级别,则此方法有效。当您想放大和缩小多个实例时会有所帮助

Dim ShellApp
Set ShellApp = CreateObject("Shell.Application")
Dim ShellWindows
Set ShellWindows = ShellApp.Windows()
Dim intZoomLevel
intZoomLevel = 110
Const OLECMDID_OPTICAL_ZOOM = 63
Const OLECMDEXECOPT_DONTPROMPTUSER = 2
Dim i
For i = 0 To ShellWindows.Count - 1
    If InStr(ShellWindows.Item(i).FullName, "iexplore.exe") <> 0 Then
        Set IEObject = ShellWindows.Item(i) 
    End If
    If IEObject.Visible = True Then
    While IEObject.Busy = True
     wait 5
    Wend
     IEObject.ExecWB OLECMDID_OPTICAL_ZOOM, OLECMDEXECOPT_DONTPROMPTUSER, CLng(intZoomLevel), vbNull    
    End If
Next
print "it works"