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使用百度翻译进行中翻英示例
Apr 14 Python
Python读取环境变量的方法和自定义类分享
Nov 22 Python
Python编程中运用闭包时所需要注意的一些地方
May 02 Python
Python使用三种方法实现PCA算法
Dec 12 Python
python中时间模块的基本使用教程
May 14 Python
Python3监控windows,linux系统的CPU、硬盘、内存使用率和各个端口的开启情况详细代码实例
Mar 18 Python
python+selenium+chrome批量文件下载并自动创建文件夹实例
Apr 27 Python
python numpy矩阵信息说明,shape,size,dtype
May 22 Python
python如何写try语句
Jul 14 Python
社区版pycharm创建django项目的方法(pycharm的newproject左侧没有项目选项)
Sep 23 Python
浅谈Selenium 控制浏览器的常用方法
Dec 04 Python
Pygame Rect区域位置的使用(图文)
Nov 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实现mysql同步的实现方法
2009/10/21 PHP
ThinkPHP分页实例
2014/10/15 PHP
PHP获取当前完整URL地址的函数
2014/12/21 PHP
教你在PHPStorm中配置Xdebug
2015/07/27 PHP
php 无限级分类 获取顶级分类ID
2016/03/13 PHP
php提交表单时保留多个空格及换行的文本样式的方法
2017/06/20 PHP
PHP 观察者模式深入理解与应用分析
2019/09/25 PHP
JavaScript使用技巧精萃[代码非常实用]
2008/11/21 Javascript
javascript CSS画图之基础篇
2009/07/29 Javascript
jquery获取checkbox的值并post提交
2015/01/14 Javascript
JS扩展方法实例分析
2015/04/15 Javascript
Bootstrap4一次重大更新 几乎涉及每行代码
2016/05/16 Javascript
jQuery过滤选择器经典应用
2016/08/18 Javascript
js实现HashTable(哈希表)的实例分析
2016/11/21 Javascript
JS闭包可被利用的常见场景小结
2017/04/09 Javascript
nodejs前端自动化构建环境的搭建
2017/07/26 NodeJs
vue2.0 常用的 UI 库实例讲解
2017/12/12 Javascript
详解vue 数据传递的方法
2018/04/19 Javascript
原生JS+HTML5实现的可调节写字板功能示例
2018/08/30 Javascript
vue data恢复初始化数据的实现方法
2019/10/31 Javascript
vue动态加载SVG文件并修改节点数据的操作代码
2020/08/17 Javascript
react实现复选框全选和反选组件效果
2020/08/25 Javascript
python 中文字符串的处理实现代码
2009/10/25 Python
python排序方法实例分析
2015/04/30 Python
python返回昨天日期的方法
2015/05/13 Python
批量获取及验证HTTP代理的Python脚本
2017/04/23 Python
Python编程把二叉树打印成多行代码
2018/01/04 Python
python贪婪匹配以及多行匹配的实例讲解
2018/04/19 Python
pygame游戏之旅 载入小车图片、更新窗口
2018/11/20 Python
python实现大文件分割与合并
2019/07/22 Python
浅析python字符串前加r、f、u、l 的区别
2021/01/24 Python
美国家居装饰和豪华家具购物网站:One Kings Lane
2018/12/24 全球购物
奥地利智能家居和智能生活网上商店:tink.at
2019/10/07 全球购物
物流仓储实习自我鉴定
2013/09/25 职场文书
资助贫困学生倡议书
2014/05/16 职场文书
2016年党员干部廉政承诺书
2016/03/24 职场文书