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 修改文件指定行的方法
May 15 Python
Python实现批量下载图片的方法
Jul 08 Python
Python中第三方库Requests库的高级用法详解
Mar 12 Python
python opencv摄像头的简单应用
Jun 06 Python
对python中的控制条件、循环和跳出详解
Jun 24 Python
使用APScheduler3.0.1 实现定时任务的方法
Jul 22 Python
python自动化UI工具发送QQ消息的实例
Aug 27 Python
浅析Python数字类型和字符串类型的内置方法
Dec 22 Python
在服务器上安装python3.8.2环境的教程详解
Apr 26 Python
Python类及获取对象属性方法解析
Jun 15 Python
python基于openpyxl生成excel文件
Dec 23 Python
conda安装tensorflow和conda常用命令小结
Feb 20 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使用DES进行加密与解密的方法详解
2013/06/06 PHP
php预定义变量使用帮助(带实例)
2013/10/30 PHP
php foreach正序倒序输出示例代码
2014/07/01 PHP
PHP的Yii框架中过滤器相关的使用总结
2016/03/29 PHP
PHP通过get方法获得form表单数据方法总结
2018/09/12 PHP
(仅IE下有效)关于checkbox 三态
2007/05/12 Javascript
jQuery之过滤元素操作小结
2013/11/30 Javascript
Javascript 赋值机制详解
2014/11/23 Javascript
AngularJS 2.0新特性有哪些
2016/02/18 Javascript
浅析JS获取url中的参数实例代码
2016/06/14 Javascript
关于在Servelet中如何获取当前时间的操作方法
2016/06/28 Javascript
AngularJS实践之使用NgModelController进行数据绑定
2016/10/08 Javascript
遍历json 对象的属性并且动态添加属性的实现
2016/12/02 Javascript
javascript读取文本节点方法小结
2016/12/15 Javascript
javascript 中的try catch应用总结
2017/04/01 Javascript
微信小程序--组件(swiper)详细介绍
2017/06/13 Javascript
Vue2.0基于vue-cli+webpack父子组件通信(实例讲解)
2017/09/14 Javascript
JS同步、异步、延迟加载的方法
2018/05/05 Javascript
Node.js Koa2使用JWT进行鉴权的方法示例
2018/08/17 Javascript
vue抽出组件并传值实例
2020/07/31 Javascript
ant design的table组件实现全选功能以及自定义分页
2020/11/17 Javascript
python模块smtplib实现纯文本邮件发送功能
2018/05/22 Python
Python根据指定日期计算后n天,前n天是哪一天的方法
2018/05/29 Python
使用Python进行QQ批量登录的实例代码
2018/06/11 Python
Python设计模式之享元模式原理与用法实例分析
2019/01/11 Python
Python rabbitMQ如何实现生产消费者模式
2020/08/24 Python
Django实现文章详情页面跳转代码实例
2020/09/16 Python
英国最大的在线床超市:Bed Star
2019/01/24 全球购物
linux面试题参考答案(2)
2015/12/06 面试题
大学生求职简历的自我评价
2013/10/21 职场文书
电子商务毕业生求职信
2013/11/10 职场文书
销售人员职业生涯规划范文
2014/03/01 职场文书
2014年师德师风学习材料
2014/05/16 职场文书
领导四风问题整改措施思想汇报
2014/10/13 职场文书
导游词之江南周庄
2019/12/06 职场文书
Mysql 如何实现多张无关联表查询数据并分页
2021/06/05 MySQL