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下的Mysql模块MySQLdb安装详解
Apr 09 Python
Python中取整的几种方法小结
Jan 06 Python
Python栈算法的实现与简单应用示例
Nov 01 Python
python实现图书管理系统
Mar 12 Python
对Python3+gdal 读取tiff格式数据的实例讲解
Dec 04 Python
Django使用模板后无法找到静态资源文件问题解决
Jul 19 Python
后端开发使用pycharm的技巧(推荐)
Mar 27 Python
Python如何读写字节数据
Aug 05 Python
OpenCV图片漫画效果的实现示例
Aug 18 Python
解决pytorch 的state_dict()拷贝问题
Mar 03 Python
Python 的 sum() Pythonic 的求和方法详细
Oct 16 Python
解析python中的jsonpath 提取器
Jan 18 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获取类中常量,属性,及方法列表的方法
2009/04/09 PHP
PHP 正则表达式之正则处理函数小结(preg_match,preg_match_all,preg_replace,preg_split)
2012/10/05 PHP
Javascript与PHP验证用户输入URL地址是否正确
2014/10/09 PHP
PHPExcel笔记, mpdf导出
2016/05/03 PHP
基于jQuery的星级评分插件
2011/08/12 Javascript
深入了解javascript中的prototype与继承
2013/04/14 Javascript
文字不间断滚动(上下左右)实例代码
2013/04/21 Javascript
firefox浏览器不支持innerText的解决方法
2013/08/07 Javascript
js 3种归并操作的实例代码
2013/10/30 Javascript
一个JavaScript用逗号分割字符串实例
2014/09/22 Javascript
JS中对象与字符串的互相转换详解
2016/05/20 Javascript
微信小程序 Audio API详解及实例代码
2016/09/30 Javascript
JS判断是否手机或pad访问实现方法
2016/12/09 Javascript
JS实现经典的中国地区三级联动下拉菜单功能实例【测试可用】
2017/06/06 Javascript
详解Angular5 服务端渲染实战
2018/01/04 Javascript
jQuery实现模糊搜索功能的方法分析
2018/06/29 jQuery
从零开始封装自己的自定义Vue组件
2018/10/09 Javascript
图文详解vue框架安装步骤
2019/02/12 Javascript
vue实现select下拉显示隐藏功能
2019/09/30 Javascript
vue vant中picker组件的使用
2020/11/03 Javascript
[02:02]特效爆炸!DOTA2珍宝之瓶待你开启
2018/08/21 DOTA
python2 与 python3 实现共存的方法
2018/07/12 Python
Python切片操作去除字符串首尾的空格
2019/04/22 Python
学习Python列表的基础知识汇总
2020/03/10 Python
python 轮询执行某函数的2种方式
2020/05/03 Python
UGG美国官网:购买UGG雪地靴、拖鞋和鞋子
2017/12/31 全球购物
加拿大时尚床上用品零售商:QE Home | Quilts Etc
2018/01/22 全球购物
毕业生个人求职信范文分享
2014/01/05 职场文书
《祁黄羊》教学反思
2014/04/22 职场文书
巴西世界杯32强口号
2014/06/05 职场文书
师范生求职信
2014/06/14 职场文书
党的群众路线教育实践活动对照检查材料范文
2014/09/24 职场文书
护理工作个人总结
2015/03/03 职场文书
2015年大学迎新工作总结
2015/07/16 职场文书
互联网的下一个风口:新的独角兽将诞生
2019/08/02 职场文书
mysql使用 not int 子查询隐含陷阱
2022/04/12 MySQL