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 相关文章推荐
tensorflow入门之训练简单的神经网络方法
Feb 26 Python
python实现日常记账本小程序
Mar 10 Python
Python 创建空的list,以及append用法讲解
May 04 Python
Python实现调用另一个路径下py文件中的函数方法总结
Jun 07 Python
python实现日志按天分割
Jul 22 Python
python批量读取文件名并写入txt文件中
Sep 05 Python
django2.2安装错误最全的解决方案(小结)
Sep 24 Python
Pandas数据离散化原理及实例解析
Nov 16 Python
python matplotlib模块基本图形绘制方法小结【直线,曲线,直方图,饼图等】
Apr 26 Python
Spring http服务远程调用实现过程解析
Jun 11 Python
python基础之爬虫入门
May 10 Python
pytorch中的 .view()函数的用法介绍
Mar 17 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程序内部post数据的方法
2015/03/31 PHP
php PDO实现的事务回滚示例
2017/03/23 PHP
asp.net下利用js实现返回上一页的实现方法小集
2009/11/24 Javascript
jquery的ajax从纯真网(cz88.net)获取IP地址对应地区名
2009/12/02 Javascript
js判断选择的时间是否大于今天的代码
2013/08/20 Javascript
获取中文字符串的实际长度代码
2014/06/05 Javascript
基于javascript的JSON格式页面展示美化方法
2014/07/02 Javascript
jQuery制作仿Mac Lion OS滚动条效果
2015/02/10 Javascript
JS+CSS实现仿雅虎另类滑动门切换效果
2015/10/13 Javascript
jQuery滚动加载图片实现原理
2015/12/14 Javascript
jQuery的内容过滤选择器学习教程
2016/04/18 Javascript
Javascript获取background属性中url的值
2016/10/17 Javascript
浅谈js中startsWith 函数不能在任何浏览器兼容的问题
2017/03/01 Javascript
js canvas实现适用于移动端的百分比仪表盘dashboard
2017/07/18 Javascript
vue-awesome-swiper滑块插件使用方法详解
2017/11/27 Javascript
JS实现的找零张数最小问题示例
2017/11/28 Javascript
Electron 如何调用本地模块的方法
2019/02/01 Javascript
countUp.js实现数字滚动效果
2019/10/18 Javascript
node后端服务保活的实现
2019/11/10 Javascript
微信小程序报错: thirdScriptError的错误问题
2020/06/19 Javascript
vue2和vue3的v-if与v-for优先级对比学习
2020/10/10 Javascript
python批量提交沙箱问题实例
2014/10/08 Python
Linux下python3.7.0安装教程
2018/07/30 Python
Python中一些深不见底的“坑”
2019/06/12 Python
Django处理Ajax发送的Get请求代码详解
2019/07/29 Python
Python 一行代码能实现丧心病狂的功能
2020/01/18 Python
如何理解python面向对象编程
2020/06/01 Python
Python实现加密的RAR文件解压的方法(密码已知)
2020/09/11 Python
详解python模块pychartdir安装及导入问题
2020/10/22 Python
物流司机岗位职责
2013/12/28 职场文书
购房协议书
2014/04/11 职场文书
纪检监察建议书
2014/05/19 职场文书
2014年药店工作总结
2014/11/20 职场文书
Golang 实现超大文件读取的两种方法
2021/04/27 Golang
Python  lambda匿名函数和三元运算符
2022/04/19 Python
win10怎么设置右下角图标不折叠?Win10设置右下角图标不折叠的方法
2022/07/15 数码科技