我想在发生错误时拍摄应用程序的屏幕截图&将其保存在特定文件夹中。下面的代码可以工作,但它不需要应用程序的屏幕截图,它需要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
答案 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打开它并且一直在对它执行操作,那么测试中的应用程序应该已经处于前台并且处于活动状态。