如何使用QTP截取应用程序的屏幕截图?

时间:2014-08-22 09:15:02

标签: qtp

我想在发生错误时拍摄应用程序的屏幕截图&将其保存在特定文件夹中。下面的代码可以工作,但它不需要应用程序的屏幕截图,它需要QTP代码屏幕的屏幕截图。

Function CaptureImage()
    Dim Date_Time
    Dim Myfile
    Date_Time=Now() 
    Myfile= Date_Time&".png"
    Myfile = Replace(Myfile,"/","-") 
    Myfile = Replace(Myfile,":","-")
    Myfile= "C:\"&Myfile 
    Desktop.CaptureBitmap Myfile, True
End Function

2 个答案:

答案 0 :(得分:2)

Dim ScreenName

  On Error Resume Next

  ScreenName = " "
  
  CurrentTime = "_Test_Case"&"_"& Day(Now)&"_"& Month(Now)&"_"& Year(Now)&"_"&

   Hour(Now)&"_"& Minute(Now)&"_"& Second(Now)

  ScreenShotName = "Name_of_the_Screen" &  CurrentTime & ".png"

  ScreenName ="Path where the Screenshot needs to be stored"&"\"&ScreenShotName

  Desktop.CaptureBitmap ScreenName,True

这应该有用。

答案 1 :(得分:1)

您的代码正在按照您的要求执行操作 - 获取桌面的屏幕截图。如果您想截取特定应用程序的屏幕截图,请确保应用程序在桌面上可见/最顶层。

如果您需要在代码中执行此操作,可以在各种顶级对象上尝试Activate方法。例如:

Window("Notepad").Activate

如果您需要激活浏览器,可以尝试以下方法:

hwnd = Browser("...").GetROProperty("hwnd")
Window("hwnd:=" & hwnd).Activate

...然后截取屏幕截图。实际上,如果QTP打开它并且一直在对它执行操作,那么测试中的应用程序应该已经处于前台并且处于活动状态。