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 相关文章推荐
Ubuntu 14.04+Django 1.7.1+Nginx+uwsgi部署教程
Nov 18 Python
Python类定义和类继承详解
May 08 Python
详解字典树Trie结构及其Python代码实现
Jun 03 Python
python 排序算法总结及实例详解
Sep 28 Python
Python中支持向量机SVM的使用方法详解
Dec 26 Python
zookeeper python接口实例详解
Jan 18 Python
Python 打印中文字符的三种方法
Aug 14 Python
对Python发送带header的http请求方法详解
Jan 02 Python
详解Python 切片语法
Jun 10 Python
python进阶之自定义可迭代的类
Aug 20 Python
python 多维高斯分布数据生成方式
Dec 09 Python
Autopep8的使用(python自动编排工具)
Mar 02 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 cli模式学习(PHP命令行模式)
2013/06/03 PHP
纯PHP代码实现支付宝批量付款
2015/12/24 PHP
ThinkPHP框架使用redirect实现页面重定向的方法实例分析
2018/04/12 PHP
jQuery EasyUI API 中文文档 - NumberBox数字框
2011/10/13 Javascript
extjs两个tbar问题探讨
2013/08/08 Javascript
js过滤特殊字符输入适合输入、粘贴、拖拽多种情况
2014/03/22 Javascript
JS基于面向对象实现的放烟花效果
2015/05/07 Javascript
详解基于Bootstrap扁平化的后台框架Ace
2015/11/27 Javascript
理解javascript定时器中的单线程
2016/02/23 Javascript
Bootstrap组件系列之福利篇几款好用的组件(推荐)
2016/06/23 Javascript
js生成随机数(指定范围)的实例代码
2016/07/10 Javascript
JavaScript之Date_动力节点Java学院整理
2017/06/28 Javascript
react native 文字轮播的实现示例
2018/07/27 Javascript
微信小程序自定义组件封装及父子间组件传值的方法
2018/08/28 Javascript
element上传组件循环引用及简单时间倒计时的实现
2018/10/01 Javascript
使用VUE+iView+.Net Core上传图片的方法示例
2019/01/04 Javascript
JS表单验证插件之数据与逻辑分离操作实例分析【策略模式】
2020/05/01 Javascript
理解JavaScript中的对象
2020/08/25 Javascript
python 使用poster模块进行http方式的文件传输到服务器的方法
2019/01/15 Python
Python 动态导入对象,importlib.import_module()的使用方法
2019/08/28 Python
python使用多线程编写tcp客户端程序
2019/09/02 Python
pycharm 设置项目的根目录教程
2020/02/12 Python
python批量生成条形码的示例
2020/10/10 Python
HTML5 canvas基本绘图之填充样式实现
2016/06/27 HTML / CSS
行政专员工作职责
2013/12/22 职场文书
12岁生日演讲稿
2014/05/14 职场文书
节约能源标语
2014/06/17 职场文书
学校读书活动总结
2014/06/30 职场文书
学校党的群众路线教育实践活动总结材料
2014/10/30 职场文书
关于群众路线的心得体会
2014/11/05 职场文书
小学生表扬稿范文
2015/05/05 职场文书
公司年会开场白
2015/06/01 职场文书
800字作文之大雪
2019/12/04 职场文书
写一个Python脚本下载哔哩哔哩舞蹈区的所有视频
2021/05/31 Python
Python中非常使用的6种基本变量的操作与技巧
2022/03/22 Python