'########################################################################################
'This is navigate through the full page and taking individual screenshot of visible area
'########################################################################################
Function TakeScreenshot
Dim intScrolls, intScroll, strScrollPos
Set pgApp = Browser("").Page("")
intScrolls = Round(pgApp.RunScript("document.documentElement.scrollHeight / (screen.height)"), 2)
If intScrolls < 1 Then intScrolls = -1
pgApp.RunScript "window.scrollTo(0, 0);"
Wait 1
Browser("").CaptureBitmap "C:\screenshot0.png", True
For intScroll = 0 To intScrolls
If Environment.Value("Browser") = "CHROME" Then
strScrollPos = "scrollY"
Else
strScrollPos = "document.documentElement.scrollTop"
End If
If pgApp.RunScript("document.documentElement.scrollHeight - " & strScrollPos) > pgApp.RunScript("screen.height") Then
intY = pgApp.RunScript(strScrollPos & " + screen.height - 168;")
pgApp.RunScript "window.scrollTo(0, " & intY & ");"
Wait 1
Browser("").CaptureBitmap "screenshot" & (intScroll + 1) & ".png", True
End If
Next
'To merge the images to generate full page screenshot
Call MergeImages
End Function
'########################################################################################
'This is to merge all individual images to one full page screenshot
'########################################################################################
Function MergeImages
Dim drawImage, grapImage, imgFormat, imgLayer, imgPT
Set drawImage = DotNetFactory.CreateInstance("System.Drawing.Bitmap", "System.Drawing", 1920, 1050)
drawImage.SetResolution 50, 45
Set grapImage = DotNetFactory.CreateInstance("System.Drawing.Graphics").FromImage(drawImage)
Set imgLayer = DotNetFactory.CreateInstance("System.Drawing.Bitmap", "System.Drawing", "C:\screenshot0.png")
Set imgPT = DotNetFactory.CreateInstance("System.Drawing.Point", "System.Drawing", 0, 0)
grapImage.DrawImage Layer1, pt1
Set imgLayer = DotNetFactory.CreateInstance("System.Drawing.Bitmap", "System.Drawing", "C:\screenshot1.png")
Set imgPT = DotNetFactory.CreateInstance("System.Drawing.Point", "System.Drawing", 0, 540)
grapImage.DrawImageUnScaled Layer2, pt2
Set imgFormat = DotNetFactory.CreateInstance("System.Drawing.Imaging.ImageFormat", "System.Drawing", Nothing)
drawImage.Save "finalScreenshot.png", format.PNG
End Function
This code is for UFT/VBScript and you can use the same logic by applying different APIs available for SELENIUM or any other tools.
Your info is really amazing with impressive content..Excellent blog with informative concept. Really I feel happy to see this useful blog, Thanks for sharing such a nice blog..
ReplyDeleteIf you are looking for any Data science Related information please visit our website best course for data science page!
very nice article more visit:
ReplyDeletejava training in bangalore
best java training institutes in bangalore
java classes in bangalore
best training institute for java in bangalore
java training in yelahanka
great article I like this very much Big Data Training In Chennai
ReplyDeleteThanks for sharing this wonderful content.its very useful to us.
ReplyDeleteI gained many unknown information, the way you have clearly explained is really fantastic.This is incredible,I feel really happy to have seen your webpage and look forward to somany more entertaining times reading here.
oracle training in chennai
oracle training institute in chennai
oracle training in bangalore
oracle training in hyderabad
oracle training
hadoop training in chennai
hadoop training in bangalore
Uft - Take Full Page Screenshot By Scrolling The Page >>>>> Download Now
ReplyDelete>>>>> Download Full
Uft - Take Full Page Screenshot By Scrolling The Page >>>>> Download LINK
>>>>> Download Now
Uft - Take Full Page Screenshot By Scrolling The Page >>>>> Download Full
>>>>> Download LINK aD
this code works well for scrolling and taking screenshots however I am getting an error in the merge function for the line "grapImage.DrawImage Layer1, pt1"
ReplyDeletethe error is external object System.Drawing.Graphics: DrawImage has thrown the following exception Ambiguous match found
also the merge function only works if you have screenshot0 and screenshots1 (two scrolls) seems to me this function needs to have a for loop in case you have more than 2 screenshots
Hai, did you find any workaround?
Delete