使用 QTP 时如何捕获整个网页?我知道屏幕截图的“CaptureBitmap”方法。但是如何捕获整个页面?帮助 !!
5 回答
你想捕捉什么?如果是 HTML,您可以在Page
测试对象上创建一个检查点并选中HTML 验证部分中的HTML 源复选框。
如果要捕获页面的图像,则只能捕获可见部分,CaptureBitmap
而无法获取滚动部分的图像(除非您滚动并使用多个捕获)。
可以通过切换 QTP 的运行设置而不是使用 CaptureBitmap 来获取全屏截图。我们可以告诉 QTP 总是拍摄屏幕截图,与我们希望捕获的页面(或对象)交互(例如调用 .Exist(0)),这会将屏幕截图提供给结果。
执行此操作的代码:
Dim App 'As Application
Set App = CreateObject("QuickTest.Application")
App.Options.Run.ImageCaptureForTestResults = "Always"
Browser("index:=0").Page("index:=0").sync
App.Options.Run.ImageCaptureForTestResults = "OnError"
从技术上讲,这似乎是在捕获 html,然后在运行结果中将其呈现给用户,而不是浏览器呈现 html 的实际图像。但是,这仍然意味着我们可以看到页面上的内容但不可见。
使用Browser("").Capturebitmap
.
这将截取可见浏览器的屏幕截图。用 sendkeys 方法做一页下来,然后Browser("").Capturebitmap
再用!
我经历了很多冲浪,但无法获得正确答案,或者由于在我的办公室使用第三方 API 的限制,我无法实现我的发现。通过使用点网工厂,我们可以使用点网库进行截图和合并。请参阅以下页面以获取完整代码
http://www.testbasket.com/2015/08/capture-whole-web-page-using-uftqtp.html
但是,我在这里粘贴了页面中的内容,希望对您有所帮助。
为了截取完整页面的截图,我使用了 DotNetFactory 和 System.Drawing 点网库。
让我们一步一步解决,
作为实施解决方案的一部分,我们需要获取整个页面的高度和重量。为了实现这一点,我们使用 .object 方法使用页面的 DOM。
#Get the Full Height of Page
FullHeight = Browser("Wikipedia, the free encycloped").Object.document.body.scrollheight
#Get the Full width of Page
Fullwidth = Browser("Wikipedia, the free encycloped").Object.document.body.scrollwidth
一旦我们找到完整的页面大小,我们需要找到客户端大小(浏览器可以显示多少)
#Get the visible height - Viewable part of the page
BrowserHeight = Browser("Wikipedia, the free encycloped").Object.document.body.clientHeight
#Get the visible width - Viewable part of the page
Browserwidth = Browser("Wikipedia, the free encycloped").Object.document.body.clientwidth
接下来我们需要使用点网工厂导入所需的点网库
Set oGraphics=DotNetFactory.CreateInstance("System.Drawing.Graphics")
Set oPoint=DotNetFactory.CreateInstance("System.Drawing.Point")
Set oImgFormat=DotNetFactory.CreateInstance("System.Drawing.Imaging.ImageFormat","System.Drawing", Nothing)
Set oImageLib = DotNetFactory.CreateInstance("System.Drawing.Image")
Set oPens=DotNetFactory.CreateInstance("System.Drawing.Pens","System.Drawing")
作为最后一步,我们需要遍历页面并分别获取屏幕打印。最后使用 Dotnet 库,我们将使用图形合并图像。画法。很容易实现,完整的代码集在上面提到的链接中可供参考
如果您想要整个页面的单个屏幕截图,请尝试使用SnagIt。
有一个方便的 PDF 文件,其中包含有关如何处理它的更多信息(http://download.techsmith.com/snagit/docs/comserver/enu/snagitcom.pdf)
在 QTP 中,它可能看起来像这样:
Sub Capture_Scroll_Image ()
Set objShell = CreateObject("WScript.Shell")
Set oSnag = CreateObject("SNAGIT.ImageCapture")
oSnag.IncludeCursor = False
oSnag.OutputImageFile.FileType = 5
oSnag.OutputImageFile.FileNamingMethod = 1
oSnag.OutputImageFile.Directory = "C:\Screens\"
oSnag.OutputImageFile.Filename = "Name"
oSnag.EnablePreviewWindow = False
oSnag.AutoScrollOptions.AutoScrollMethod= 1
oSnag.Capture()
Wait (1)
objShell.SendKeys "{ENTER}"
capDone = oSnag.IsCaptureDone
Do Until oSnag.IsCaptureDone
Loop
Set oSnag=Nothing
Set objShell=NothingEnd Sub
End Sub