Python写自动化之一种截图方法

在进行自动化测试时,很多时候需要通过图片对比来判断某个功能是否正常,通常情况下,使用

Python 的第三方包 Image 可以 实现截取图片的功能。然而,有时候有些图片是flash或者其他,

使用 Image 截取到的可能是一片空白,举个输入法的例子来说,输入法的状态栏,以及输入法

的一些窗口,在桌面上可以看到,截图却截不到。

针对这种情况,一种方法是首先通过调用windows 的系统功能,按键 PrintScreen 进行整个屏幕

的截图,之后在对所获得的图片进行截图,这样就可以得到图片。

附上代码:

#函数功能:截取某一矩形的屏幕(可以截取flash皮肤,网页的flash)
#参数:rect--矩形大小,filename--存储文件名,fmt--存储格式,可以为空
#返回值:成功则真,否则False
def RectCapturePlus(rect, filename, fmt = None):
    win32api.keybd_event(win32con.VK_SNAPSHOT, 0, 0, 0)
    sleep(1)
    win32api.keybd_event(win32con.VK_SNAPSHOT, 0, win32con.KEYEVENTF_KEYUP, 0)
    sleep(1)
    try:
        im = ImageGrab.grabclipboard()
        im = im.crop(rect)
        im.save(filename, fmt)
    except :
        return False
    return True

其中,win32con.VK_SNAPSHOT 代表的是 PrintScreen键。


转载请注明出处:http://blog.csdn.net/sogouauto

你可能感兴趣的:(测试脚本)