1

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

4

5 回答 5

1

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

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

于 2010-05-20T10:43:41.547 回答
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 的实际图像。但是,这仍然意味着我们可以看到页面上的内容但不可见。

于 2013-10-23T02:57:29.853 回答
0

使用Browser("").Capturebitmap.

这将截取可见浏览器的屏幕截图。用 sendkeys 方法做一页下来,然后Browser("").Capturebitmap再用!

于 2010-08-01T18:50:31.917 回答
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

接下来我们需要使用点网工厂导入所需的点网库

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 库,我们将使用图形合并图像。画法。很容易实现,完整的代码集在上面提到的链接中可供参考

于 2015-08-19T03:01:38.363 回答
-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
于 2010-08-06T14:05:41.557 回答