如何使用QTP捕获整个网页?

时间:2010-05-20 09:57:31

标签: capture qtp

如何在使用QTP时捕获整个网页? 我知道屏幕截图的'CaptureBitmap'方法。但是如何捕获整个页面?帮助!!

5 个答案:

答案 0 :(得分:1)

你想要捕捉什么?如果是HTML,您可以在Page测试对象上创建检查点,并选中 HTML验证部分中的 HTML源复选框。

如果要捕获页面的图像,则只能使用CaptureBitmap捕获可见部分,无法获得滚动部分的图像(除非您滚动并使用多个捕获)。

答案 1 :(得分:0)

使用Browser("").Capturebitmap

这将获取可见浏览器的屏幕截图。 使用sendkeys方法进行向下翻页,然后再次使用Browser("").Capturebitmap

答案 2 :(得分:0)

可以通过切换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演示的实际图像。但是,这意味着我们可以看到页面上的内容但不可见。

答案 3 :(得分:0)

我经历了大量的冲浪,但无法得到正确的答案,或者由于我在办公室使用第三方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

接下来,我们需要使用Dot Net Factory

导入所需的点网库
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库我们将使用图形合并图像。绘制方法。它易于实现,上述链接中提供了完整的代码集供参考

答案 4 :(得分:-1)

如果您想要整个页面的单个屏幕截图,请尝试使用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