Python如何截图保存的三种方法(小结)


Posted in Python onSeptember 01, 2020

本文介绍python如何进行截图保存的几种方法,在测试过程中,是有必要截图,特别是遇到错误的时候进行截图。结合Python其它模块如time ,os.path,基本能满足截图保存文件的功能需求

第一种 selenium for python

Python如何截图保存的三种方法(小结)

get_screenshot_as_file()

相关代码如下:

# coding=utf-8
import time
from selenium import webdriver
driver = webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(6)
driver.get("https://www.baidu.com")
time.sleep(1)
driver.get_screenshot_as_file("C:\\baidu.png")
driver.quit()

第二种 使用PIL库

代码如下:

import time
from PIL import ImageGrab
if __name__=="__main__": 
  pic = ImageGrab.grab()
  pic.save("picture.jpg")

第三种

代码如下:

#coding=utf-8
import time
import win32gui, win32ui, win32con, win32api
def window_capture(filename):
 hwnd = 0 # 窗口的编号,0号表示当前活跃窗口
 # 根据窗口句柄获取窗口的设备上下文DC(Divice Context)
 hwndDC = win32gui.GetWindowDC(hwnd)
 
 # 根据窗口的DC获取mfcDC
 mfcDC = win32ui.CreateDCFromHandle(hwndDC)
 
 # mfcDC创建可兼容的DC
 saveDC = mfcDC.CreateCompatibleDC()
 
 # 创建bigmap准备保存图片
 saveBitMap = win32ui.CreateBitmap()
 
 # 获取监控器信息
 MoniterDev = win32api.EnumDisplayMonitors(None, None)
 w = MoniterDev[0][2][2]
 h = MoniterDev[0][2][3]
 
 # print w,h #图片大小
 # 为bitmap开辟空间
 saveBitMap.CreateCompatibleBitmap(mfcDC, w, h)
 
 # 高度saveDC,将截图保存到saveBitmap中
 saveDC.SelectObject(saveBitMap)
 
 # 截取从左上角(0,0)长宽为(w,h)的图片
 saveDC.BitBlt((0, 0), (w, h), mfcDC, (0, 0), win32con.SRCCOPY)
 saveBitMap.SaveBitmapFile(saveDC, filename)
 
if __name__=="__main__": 
  beg = time.time()
  for i in range(1):
   image_name="haha%s.jpg"%i
   window_capture(image_name)
  end = time.time()
  print(end - beg)

到此这篇关于Python如何截图保存的三种方法(小结)的文章就介绍到这了,更多相关Python 截图保存内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python实现全角半角转换的方法
Aug 18 Python
Python实现PS滤镜的旋转模糊功能示例
Jan 20 Python
Pyspider中给爬虫伪造随机请求头的实例
May 07 Python
Python实现字典(dict)的迭代操作示例
Jun 05 Python
Django model序列化为json的方法示例
Oct 16 Python
python itchat给指定联系人发消息的方法
Jun 11 Python
Django 全局的static和templates的使用详解
Jul 19 Python
浅析PEP572: 海象运算符
Oct 15 Python
Python unittest装饰器实现原理及代码
Sep 08 Python
python的数学算法函数及公式用法
Nov 18 Python
python实现简单的井字棋游戏(gui界面)
Jan 22 Python
基于Python实现一个春节倒计时脚本
Jan 22 Python
Python连接mysql方法及常用参数
Sep 01 #Python
python3:excel操作之读取数据并返回字典 + 写入的案例
Sep 01 #Python
Python+Selenium实现自动化的环境搭建的步骤(图文)
Sep 01 #Python
Django如何批量创建Model
Sep 01 #Python
python 解决selenium 中的 .clear()方法失效问题
Sep 01 #Python
一文详述 Python 中的 property 语法
Sep 01 #Python
Python Opencv轮廓常用操作代码实例解析
Sep 01 #Python
You might like
社区(php&&mysql)一
2006/10/09 PHP
PHP中static关键字原理的学习研究分析
2011/07/18 PHP
jQuery获取json后使用zy_tmpl生成下拉菜单
2015/03/27 PHP
php计算整个目录大小的方法
2015/06/19 PHP
php生成酷炫的四个字符验证码
2016/04/22 PHP
js中cookie的使用详细分析
2008/05/28 Javascript
javascript 解析url的search方法
2010/02/09 Javascript
JQuery通过Ajax提交表单并返回结果
2011/07/31 Javascript
jQuery contains过滤器实现精确匹配使用方法
2013/04/12 Javascript
js数组常见操作及数组与字符串相互转化实例详解
2015/11/10 Javascript
JS实现购物车特效
2017/02/02 Javascript
javascript修改浏览器title方法 JS动态修改浏览器标题
2017/11/30 Javascript
利用Blob进行文件上传的完整步骤
2018/08/02 Javascript
Vue指令指令大全
2019/02/09 Javascript
Vue.js仿Select下拉框效果
2020/02/18 Javascript
JavaScript命令模式原理与用法实例详解
2020/03/10 Javascript
原生js实现下拉框选择组件
2021/01/20 Javascript
[01:33]DOTA2上海特级锦标赛 LIQUID战队完整宣传片
2016/03/16 DOTA
[00:59]PWL开团时刻DAY7——我在赶
2020/11/06 DOTA
在Django框架中伪造捕捉到的URLconf值的方法
2015/07/18 Python
Python工程师面试题 与Python Web相关
2016/01/14 Python
django传值给模板, 再用JS接收并进行操作的实例
2018/05/28 Python
Pandas读取MySQL数据到DataFrame的方法
2018/07/25 Python
python爬虫 urllib模块反爬虫机制UA详解
2019/08/20 Python
快速解决docker-py api版本不兼容的问题
2019/08/30 Python
在Pytorch中计算卷积方法的区别详解(conv2d的区别)
2020/01/03 Python
python通用读取vcf文件的类(复制粘贴即可用)
2020/02/29 Python
如何使用python的ctypes调用医保中心的dll动态库下载医保中心的账单
2020/05/24 Python
HTML5 Canvas的常用线条属性值总结
2016/03/17 HTML / CSS
阿根廷首家户外用品制造商和经销商:Montagne
2018/02/12 全球购物
J2EE的优越性主要表现在哪些方面
2016/03/28 面试题
网络工程专业毕业生推荐信
2013/10/28 职场文书
联片教研活动总结
2014/07/01 职场文书
防灾减灾标语
2014/10/07 职场文书
小学英语教学随笔
2015/08/14 职场文书
2016年度创先争优活动总结
2016/04/05 职场文书