1.watir-webdriver 自带截图功能
browser.driver.save_screenshot 'screenshot.png'
此种方法可以截取整个网页的图片。功能强大,但是不好之处在于,截取出来的图片比较模糊,分辨率不高。尤其放到excel 中,效果比较差。
2.win32 screenshot 截图功能
需要先安装gem install win32screenshot
执行时:
require 'win32/screenshot'
#Take a screenshot of the foreground, and writing over previous image if it exists
Win32::Screenshot::Take.of(:foreground).write!("C:\\image.png")
或者如下方法:
# Take a screenshot of the window with the specified title
#Win32::Screenshot::Take.of(:window, title: "Windows Internet Explorer").write("image.bmp")
利用此种方法截取出的图片分辨率高于第一种方法。建议采用此种方法。
3.将截图放到Excel中
@excel = WIN32OLE::new("EXCEL.APPLICATION")
@excel.visible=false
@WorkBookopen= @excel.Workbooks.Open("excel文件路径")
@objSheet = @excel.Sheets(1)
@excel.Sheets(1).Select
@objSheet .Range("A1").Select
#此方法 将添加图片到excel
#一般只需要更改后四位参数,0:与左边距,0:与上边距,570:图片宽度,324:图片高度。可以多尝试组合。
@objSheet.Shapes.AddPicture "C:\\image.png", false, true, 0, 0, 570, 324
@excel.DisplayAlerts = false
@WorkBookopen.save
@WorkBookopen.close
如此即可将截图放到EXCEL中。
可以在此方法上进一步加强,做成截图函数,提供自动化测试中使用。
执行一个案例,根据需要截取多张图片按顺序放到Excel文件中。完美跟踪测试执行过程。
此处略。