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中self原理实例分析
Apr 30 Python
Python爬取国外天气预报网站的方法
Jul 10 Python
利用Python破解斗地主残局详解
Jun 30 Python
Python定时器实例代码
Nov 01 Python
python使用正则表达式替换匹配成功的组
Nov 17 Python
一条命令解决mac版本python IDLE不能输入中文问题
May 15 Python
python判断数字是否是超级素数幂
Sep 27 Python
python的继承知识点总结
Dec 10 Python
python的几种矩阵相乘的公式详解
Jul 10 Python
Python pip安装模块提示错误解决方案
May 22 Python
Python列表如何更新值
May 27 Python
Python音乐爬虫完美绕过反爬
Aug 30 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的安全
2006/10/09 PHP
PHP中的reflection反射机制测试例子
2014/08/05 PHP
PHP判断是否为空的几个函数对比
2015/04/21 PHP
php cookie用户登录的详解及实例代码
2017/01/03 PHP
jQuery的观察者模式详解
2014/12/22 Javascript
jQuery中:first选择器用法实例
2014/12/30 Javascript
javascript去除字符串左右两端的空格
2015/02/05 Javascript
AngularJS Bootstrap详细介绍及实例代码
2016/07/28 Javascript
使用JS中的exec()方法构造正则表达式验证
2016/08/01 Javascript
AngularJS 应用身份认证的技巧总结
2016/11/07 Javascript
RequireJS 依赖关系的实例(推荐)
2017/01/21 Javascript
bootstrap表格内容过长时用省略号表示的解决方法
2017/11/21 Javascript
Vue.js 的移动端组件库mint-ui实现无限滚动加载更多的方法
2017/12/23 Javascript
在Vue中使用icon 字体图标的方法
2019/06/14 Javascript
微信小程序 弹窗输入组件的实现解析
2019/08/12 Javascript
webpack proxy 使用(代理的使用)
2020/01/10 Javascript
vue中使用router全局守卫实现页面拦截的示例
2020/10/23 Javascript
深入解析Python编程中super关键字的用法
2016/06/24 Python
python导入时小括号大作用
2017/01/10 Python
python+matplotlib实现动态绘制图片实例代码(交互式绘图)
2018/01/20 Python
python traceback捕获并打印异常的方法
2018/08/31 Python
Python判断以什么结尾以什么开头的实例
2018/10/27 Python
python操作gitlab API过程解析
2019/12/27 Python
Python动态导入模块和反射机制详解
2020/02/18 Python
python如何编写win程序
2020/06/08 Python
解决pycharm修改代码后第一次运行不生效的问题
2021/02/06 Python
Python 求向量的余弦值操作
2021/03/04 Python
程序设计HTML5 Canvas API
2013/04/08 HTML / CSS
Michael Kors英国官网:美国奢侈品品牌
2019/11/13 全球购物
客服专员岗位职责范本
2013/11/29 职场文书
产品发布会策划方案
2014/05/12 职场文书
幼儿园师德师风学习材料
2014/05/29 职场文书
学习党的群众路线教育实践活动剖析材料
2014/10/13 职场文书
销售员岗位职责
2015/02/10 职场文书
2019年年中工作总结讲话稿模板
2019/03/25 职场文书
Java对文件的读写操作方法
2022/04/29 Java/Android