关闭

QTP中Browser对象的方法补充:激活、最大化、最小化

发表于:2013-4-01 13:42

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:snakeshiy    来源:51Testing软件测试网采编

  做Web自动化测试的时候,有时需要对浏览器进行一些特殊的操作,比如浏览器的激活、最大化和最小化。熟悉C/S自动化测试的朋友应该都知道Window对象是有这些方法的,而Browser对象则没有。

  当然了, 我们可以自己写一些函数来弥补这个不足,其原理是通过获取浏览器的句柄,然后使用描述性编程来操作Window对象。

  PS:所谓句柄是指,使用的一个唯一的整数值,即一个四字节长的数值,来标志应用程序中的不同对象和同类对象中的不同的实例,诸如,一个窗口,按钮,图标,滚动条,输出设备,控件或者文件等。

  Activate Browser

' 注册自定义Activate函数 
RegisterUserFunc "Browser", "Activate", "BrowserActivate" 
 
Function BrowserActivate(ByRef Object) 
    Dim HWND 
    ' 获取浏览器程序句柄 
    HWND= Object.GetROProperty("hwnd") 
  
    On Error Resume Next 
        ' 激活句柄等同于浏览器句柄的窗口程序 
        Window("hwnd:=" & HWND).Activate 
  
        If Err.Number <> 0 Then 
            Window("hwnd:=" & Browser("hwnd:=" & HWND).Object.HWND).Activate 
            Err.Clear 
        End If 
    On Error Goto 0 
End Function

  Maximize Browser

' 注册自定义Minimize函数 
RegisterUserFunc "Browser", "Minimize", "BrowserMinimize" 
 
Function BrowserMinimize(ByRef Object) 
    Dim HWND 
    ' 获取浏览器程序句柄 
    HWND= Object.GetROProperty("hwnd") 
  
    On Error Resume Next 
        ' 激活句柄等同于浏览器句柄的窗口程序 
        Window("hwnd:=" & HWND).Activate 
  
        If Err.Number <> 0 Then 
            HWND = Browser("hwnd:=" & HWND).Object.hWnd 
            Window("hwnd:=" & HWND).Activate 
            Err.Clear 
        End If 
        ' 最小化句柄等同于浏览器句柄的窗口程序 
        Window("hwnd:=" & HWND).Minimize 
    On Error Goto 0 
End Function  <STRONG>
</STRONG>

  Minimize Browser

' 注册自定义Minimize函数 
RegisterUserFunc "Browser", "Minimize", "BrowserMinimize" 
 
Function BrowserMinimize(ByRef Object) 
    Dim HWND 
    ' 获取浏览器程序句柄 
    HWND= Object.GetROProperty("hwnd") 
  
    On Error Resume Next 
        ' 激活句柄等同于浏览器句柄的窗口程序 
        Window("hwnd:=" & HWND).Activate 
  
        If Err.Number <> 0 Then 
            HWND = Browser("hwnd:=" & HWND).Object.hWnd 
            Window("hwnd:=" & HWND).Activate 
            Err.Clear 
        End If 
        ' 最小化句柄等同于浏览器句柄的窗口程序 
        Window("hwnd:=" & HWND).Minimize 
    On Error Goto 0 
End Function 

  由于使用了RegisterUserFunc,我们可以在QTP中直接使用自定义的函数,和Browser对象实现无缝结合。

《2023软件测试行业现状调查报告》独家发布~

精彩评论

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号