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实现的防DDoS脚本
Feb 08 Python
python调用windows api锁定计算机示例
Apr 17 Python
python3.5 + PyQt5 +Eric6 实现的一个计算器代码
Mar 11 Python
python实现远程通过网络邮件控制计算机重启或关机
Feb 22 Python
在python tkinter中Canvas实现进度条显示的方法
Jun 14 Python
python版百度语音识别功能
Jul 09 Python
django的聚合函数和aggregate、annotate方法使用详解
Jul 23 Python
Python面向对象封装操作案例详解
Dec 31 Python
基于Python的自媒体小助手---登录页面的实现代码
Jun 29 Python
python根据用户需求输入想爬取的内容及页数爬取图片方法详解
Aug 03 Python
python如何编写类似nmap的扫描工具
Nov 06 Python
Python+Matplotlib图像上指定坐标的位置添加文本标签与注释
Apr 11 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
PHP4实际应用经验篇(7)
2006/10/09 PHP
8个出色的WordPress SEO插件收集
2011/02/26 PHP
php中socket的用法详解
2014/10/24 PHP
php建立Ftp连接的方法
2015/03/07 PHP
php 删除指定文件夹的实例讲解
2017/07/25 PHP
php连接MSsql server的五种方法总结
2018/03/04 PHP
laravel异步监控定时调度器实例详解
2019/06/21 PHP
JS对HTML标签select的获取、添加、删除操作
2013/10/17 Javascript
js对列表中第一个值处理与jsp页面对列表中第一个值处理的区别详解
2013/11/05 Javascript
Javascript前端UI框架Kit使用指南之kitjs事件管理
2014/11/28 Javascript
使用EVAL处理jqchart jquery 折线图返回数据无效的解决办法
2015/11/26 Javascript
原生js实现放大镜效果
2017/01/11 Javascript
vue构建单页面应用实战
2017/04/10 Javascript
nodejs6下使用koa2框架实例
2017/05/18 NodeJs
详解Node.js 命令行程序开发教程
2017/06/07 Javascript
Nodejs实现爬虫抓取数据实例解析
2018/07/05 NodeJs
element vue Array数组和Map对象的添加与删除操作
2018/11/14 Javascript
Vue实现指令式动态追加小球动画组件的步骤
2020/12/18 Vue.js
JS实现点击掉落特效
2021/01/29 Javascript
[04:09]2014DOTA2国际邀请赛Ti西雅图 历届冠军相继出局 BBC综述今日比赛
2014/07/20 DOTA
[02:22]2018DOTA2亚洲邀请赛VG赛前采访
2018/04/03 DOTA
python将unicode转为str的方法
2017/06/21 Python
Django项目实战之用户头像上传与访问的示例
2018/04/21 Python
Ubuntu+python将nii图像保存成png格式
2019/07/18 Python
零基础学Python之前需要学c语言吗
2020/07/21 Python
Django nginx配置实现过程详解
2020/09/10 Python
pandas针对excel处理的实现
2021/01/15 Python
CSS3教程(6):创建网站多列
2009/04/02 HTML / CSS
密封类可以有虚函数吗
2014/08/11 面试题
教师旷工检讨书
2014/01/18 职场文书
个人自我评价和职业目标
2014/01/24 职场文书
工作说明书格式
2014/07/29 职场文书
文化苦旅读书笔记
2015/06/29 职场文书
二年级数学教学反思
2016/02/16 职场文书
高中地理教学反思
2016/02/19 职场文书
Java 实战项目之家居购物商城系统详解流程
2021/11/11 Java/Android