如何在使用QTP时捕获整个网页? 我知道屏幕截图的'CaptureBitmap'方法。但是如何捕获整个页面?帮助!!
答案 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