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基于queue和threading实现多线程下载实例
Oct 08 Python
python通过shutil实现快速文件复制的方法
Mar 14 Python
Ubuntu下安装PyV8
Mar 13 Python
Python实现全排列的打印
Aug 18 Python
python redis连接 有序集合去重的代码
Aug 04 Python
Python lambda表达式filter、map、reduce函数用法解析
Sep 11 Python
Python全栈之列表数据类型详解
Oct 01 Python
python中的itertools的使用详解
Jan 13 Python
Python3如何实现Win10桌面自动切换
Aug 11 Python
Python 数据分析之逐块读取文本的实现
Dec 14 Python
如何用python爬取微博热搜数据并保存
Feb 20 Python
pandas中关于apply+lambda的应用
Feb 28 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
YII中assets的使用示例
2014/07/31 PHP
3款值得推荐的微信开发开源框架
2014/10/28 PHP
thinkphp jquery实现图片上传和预览效果
2020/07/22 PHP
解决PHP使用CURL发送GET请求时传递参数的问题
2019/10/11 PHP
javascript xml为数据源的下拉框控件
2009/07/07 Javascript
JavaScript中使用正则匹配多条,且获取每条中的分组数据
2010/11/30 Javascript
JavaScript中URL编码函数代码
2011/01/11 Javascript
node.js 使用ejs模板引擎时后缀换成.html
2015/04/22 Javascript
javascript实现自动输出文本(打字特效)
2015/08/27 Javascript
ajax分页效果(bootstrap模态框)
2017/01/23 Javascript
windows下vue.js开发环境搭建教程
2017/03/20 Javascript
JS表单传值和URL编码转换
2018/03/03 Javascript
完美解决linux下node.js全局模块找不到的情况
2018/05/16 Javascript
JavaScript中 ES6变量的结构赋值
2018/07/10 Javascript
node.js遍历目录的方法示例
2018/08/01 Javascript
JS实现横向跑马灯效果代码
2020/04/20 Javascript
es6数组之扩展运算符操作实例分析
2020/04/25 Javascript
wxpython学习笔记(推荐查看)
2014/06/09 Python
python实现批量获取指定文件夹下的所有文件的厂商信息
2014/09/28 Python
Python中判断输入是否为数字的实现代码
2018/05/26 Python
Python使用requests提交HTTP表单的方法
2018/12/26 Python
python中对_init_的理解及实例解析
2019/10/11 Python
如何基于Python实现自动扫雷
2020/01/06 Python
Python3如何在Windows和Linux上打包
2020/02/25 Python
PyChon中关于Jekins的详细安装(推荐)
2020/12/28 Python
CSS3之多背景background使用示例
2013/10/18 HTML / CSS
检测浏览器是否支持html5视频的代码
2013/03/28 HTML / CSS
孤独星球出版物:Lonely Planet Publications
2018/03/17 全球购物
自主招生自荐书
2013/11/29 职场文书
2014年学生会主席工作总结
2014/11/07 职场文书
2014年班主任德育工作总结
2014/12/05 职场文书
行政主管岗位职责
2015/02/03 职场文书
公务员年度考核登记表个人总结
2015/02/12 职场文书
2016年入党心得体会范文
2016/01/23 职场文书
python中24小时制转换为12小时制的方法
2021/06/18 Python
SpringBoot中使用Redis作为全局锁示例过程
2022/03/24 Java/Android