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启动办公软件进程(word、excel、ppt、以及wps的et、wps、wpp)
Apr 09 Python
python控制台中实现进度条功能
Nov 10 Python
Python解决抛小球问题 求小球下落经历的距离之和示例
Feb 01 Python
python3+PyQt5自定义视图详解
Apr 24 Python
Python装饰器的执行过程实例分析
Jun 04 Python
解决python 无法加载downsample模型的问题
Oct 25 Python
python 调用有道api接口的方法
Jan 03 Python
python实现Excel文件转换为TXT文件
Apr 28 Python
Python进度条的制作代码实例
Aug 31 Python
Python Pandas 转换unix时间戳方式
Dec 07 Python
Python Flask上下文管理机制实例解析
Mar 16 Python
Python 数据结构之十大经典排序算法一文通关
Oct 16 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函数篇详解十进制、二进制、八进制和十六进制转换函数说明
2011/12/05 PHP
浅析PHP中Collection 类的设计
2013/06/21 PHP
基于laravel belongsTo使用详解
2019/10/18 PHP
解放web程序员的输入验证
2006/10/06 Javascript
取得传值的函数
2006/10/27 Javascript
jquery attr 设定src中含有&(宏)符号问题的解决方法
2011/07/26 Javascript
将list转换为json失败的原因
2013/12/17 Javascript
JQuery获取与设置HTML元素的内容或文本的实现代码
2014/06/20 Javascript
用js编写的简单的计算器代码程序
2015/08/04 Javascript
jquery实现未经美化的简洁TAB菜单效果
2015/08/28 Javascript
基于jquery实现鼠标左右拖动滑块滑动附源码下载
2015/12/23 Javascript
ES6正则的扩展实例详解
2017/04/25 Javascript
JS实现分页浏览横向图片(类轮播)实例代码
2017/11/06 Javascript
vue-router重定向不刷新问题的解决
2018/06/25 Javascript
vue实现组件之间传值功能示例
2018/07/13 Javascript
vue 返回上一页,页面样式错乱的解决
2019/11/14 Javascript
python基础教程之popen函数操作其它程序的输入和输出示例
2014/02/10 Python
Python中的异常处理简明介绍
2015/04/13 Python
让python 3支持mysqldb的解决方法
2017/02/14 Python
python实现SOM算法
2018/02/23 Python
浅析Python pandas模块输出每行中间省略号问题
2018/07/03 Python
Django框架模板文件使用及模板文件加载顺序分析
2019/05/23 Python
pandas.DataFrame的pivot()和unstack()实现行转列
2019/07/06 Python
Python学习笔记之While循环用法分析
2019/08/14 Python
python GUI库图形界面开发之PyQt5信号与槽基础使用方法与实例
2020/03/06 Python
python爬虫学习笔记之Beautifulsoup模块用法详解
2020/04/09 Python
Django启动时找不到mysqlclient问题解决方案
2020/11/11 Python
如何使用 Flask 做一个评论系统
2020/11/27 Python
CSS3制作缩略图的详细过程
2016/07/08 HTML / CSS
西班牙网上书店:Casa del Libro
2016/11/01 全球购物
任课老师推荐信范文
2013/11/24 职场文书
2014年迎新年联欢会活动策划方案
2014/02/26 职场文书
合伙协议书范本
2014/04/21 职场文书
反对邪教标语
2014/06/30 职场文书
css实现文章分割线样式的多种方法总结
2021/04/21 HTML / CSS
Python+SeaTable实现计算两个日期间的工作日天数
2022/07/07 Python