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使用sftp实现上传和下载功能(实例代码)
Mar 14 Python
Python 调用Java实例详解
Jun 02 Python
利用Python2下载单张图片与爬取网页图片实例代码
Dec 25 Python
python距离测量的方法
Mar 06 Python
Python清空文件并替换内容的实例
Oct 22 Python
python3 unicode列表转换为中文的实例
Oct 26 Python
Python英文文章词频统计(14份剑桥真题词频统计)
Oct 13 Python
Python 爬取必应壁纸的实例讲解
Feb 24 Python
Python threading.local代码实例及原理解析
Mar 16 Python
PyCharm2020.1.2社区版安装,配置及使用教程详解(Windows)
Aug 07 Python
如何设置PyCharm中的Python代码模版(推荐)
Nov 20 Python
利用python查看数组中的所有元素是否相同
Jan 08 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+redis实现注册、删除、编辑、分页、登录、关注等功能示例
2017/02/15 PHP
PHP利用正则表达式将相对路径转成绝对路径的方法示例
2017/02/28 PHP
PHP创建XML的方法示例【基于DOMDocument类及SimpleXMLElement类】
2019/09/10 PHP
php的instanceof和判断闭包Closure操作示例
2020/01/26 PHP
php中加密解密DES类的简单使用方法示例
2020/03/26 PHP
xml 封装与解析(javascript和C#中)
2009/07/26 Javascript
ExtJs GridPanel简单的增删改实现代码
2010/08/26 Javascript
简介JavaScript中的sub()方法的使用
2015/06/08 Javascript
Angular 2应用的8个主要构造块有哪些
2016/10/17 Javascript
深入理解vue中的$set
2017/06/01 Javascript
webpack进阶——缓存与独立打包的用法
2017/08/02 Javascript
VUE2.0+ElementUI2.0表格el-table循环动态列渲染的写法详解
2018/11/30 Javascript
[04:55]完美世界副总裁蔡玮:DOTA2的自由、公平与信任
2013/12/18 DOTA
[03:48]2014DOTA2 TI专访71DK夺冠不靠小组赛高排名
2014/07/11 DOTA
[47:43]完美世界DOTA2联赛PWL S3 Magama vs GXR 第二场 12.19
2020/12/24 DOTA
python实现用户登陆邮件通知的方法
2015/07/09 Python
python 的列表遍历删除实现代码
2020/04/12 Python
Python实现多进程共享数据的方法分析
2017/12/04 Python
Python中xrange与yield的用法实例分析
2017/12/26 Python
python实现人民币大写转换
2018/06/20 Python
python使用epoll实现服务端的方法
2018/10/16 Python
Python3实现的旋转矩阵图像算法示例
2019/04/03 Python
Python数据分析模块pandas用法详解
2019/09/04 Python
pytorch 求网络模型参数实例
2019/12/30 Python
tensorflow实现读取模型中保存的值 tf.train.NewCheckpointReader
2020/02/10 Python
浅谈Python中os模块及shutil模块的常规操作
2020/04/03 Python
使用python处理题库表格并转化为word形式的实现
2020/04/14 Python
python3.5的包存放的具体路径
2020/08/16 Python
Python 常用日期处理 -- calendar 与 dateutil 模块的使用
2020/09/02 Python
全球虚拟主机商:HostGator
2017/02/06 全球购物
微笑服务演讲稿
2014/05/13 职场文书
节约粮食标语
2014/06/18 职场文书
医院党员公开承诺书
2014/08/30 职场文书
教育系统干部作风整顿心得体会
2014/09/09 职场文书
在教室放鞭炮的检讨书
2014/09/28 职场文书
uniapp开发小程序的经验总结
2021/04/08 Javascript