Как захватить всю веб-страницу, используя QTP? - PullRequest
1 голос
/ 20 мая 2010

Как захватить всю веб-страницу при использовании QTP? Мне известен метод CaptureBitmap для скриншота. Но как захватить всю страницу? Помогите !!

Ответы [ 5 ]

1 голос
/ 20 мая 2010

Что вы хотите запечатлеть? Если это HTML, вы можете создать контрольную точку на тестовом объекте Page и установить флажок HTML source в разделе Проверка HTML .

Если вы хотите захватить изображение страницы, то вы можете захватить только видимую часть с помощью CaptureBitmap. Невозможно получить изображение прокрученных частей (если вы не прокручиваете и не используете несколько захватов). *

0 голосов
/ 19 августа 2015

Я много занимался серфингом, но не смог получить правильный ответ, или я не смог реализовать то, что нашел из-за ограничения использования сторонних API в моем офисе. Используя фабрику dot net, мы можем использовать библиотеки dot net, чтобы делать снимки экрана и объединять их. Обратитесь к странице ниже для получения полного кода

http://www.testbasket.com/2015/08/capture-whole-web-page-using-uftqtp.html

Однако здесь я вставил содержимое со страницы и надеюсь, что это поможет.

Чтобы сделать снимок экрана со всей страницей, я использовал библиотеку DotNetFactory и System.Drawing dot net.

Давайте пошагово перейдем к решению,

В рамках реализации решения нам необходимо получить рост и вес всей страницы. Для этого мы используем DOM страницы, используя метод .object.

#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, мы объединяем изображения с помощью графики. метод рисования. Это легко реализовать, полный набор кода доступен по вышеуказанной ссылке для справки

0 голосов
/ 23 октября 2013

Полный снимок экрана можно сделать, переключая настройки запуска 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 в браузере. Но, тем не менее, это означает, что мы можем видеть, что на странице, но не видно.

0 голосов
/ 06 августа 2010

Если вам нужен один скриншот всей страницы, попробуйте использовать 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
0 голосов
/ 01 августа 2010

Использование Browser("").Capturebitmap.

Это снимок экрана видимого браузера. Используйте метод sendkeys, чтобы закрыть страницу, затем снова используйте Browser("").Capturebitmap!

...