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

时间:2015-10-08 14:03:51

标签: vbscript automated-tests qtp hp-uft

我想使用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。

我不希望它创建一个新的浏览器实例。 我需要的是它改变了已经在测试执行的同一页面上的缩放级别,也就是在开始时不需要缩放级别更改的页面,它可能会也可能不需要根据它识别的事实进行更改某些物品。

有没有人遇到同样的问题或有解决方案?

1 个答案:

答案 0 :(得分:2)

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

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"