其实watir自带了截图的功能,自带的方法在下面目录:
C:\ruby\lib\ruby\gems\1.8\gems\watir-1.6.2\lib\watir\screen_capture.rb
原理:
1、模拟键盘输入截图按键
2、打开windows自带的画图软件,将黏贴板中截图的信息复制到画图软件中
3、保存为JPG或BMP格式
因为自带的方法不完全符合实际测试的要求,修改了下,增加了下面内容:
1、增加对相对路径的支持,如:"#{File.dirname(__FILE__)}/http://www.cnblogs.com/input/test.jpg"
2、当路径不存在时,创建相应的目录
3、当目录中已存在对应文件时,先重命名存在的文件,重命名后的文件如:test.20090812151922.jpg
修改后的类(LibScreen.rb)如下:
调用方法如下:
require 'LibScreen.rb'
#初始对象
ScreenClass = ScreenClass.new
#截取整个屏幕
ScreenClass.ScreenCapture("c:\\test1.jpg")
#截取当前激活的窗口
ScreenClass.ScreenCapture("c:\\test2.jpg",true)
#初始对象
ScreenClass = ScreenClass.new
#截取整个屏幕
ScreenClass.ScreenCapture("c:\\test1.jpg")
#截取当前激活的窗口
ScreenClass.ScreenCapture("c:\\test2.jpg",true)