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 相关文章推荐
django接入新浪微博OAuth的方法
Jun 29 Python
python 实现删除文件或文件夹实例详解
Dec 04 Python
Python解惑之True和False详解
Apr 24 Python
python Socket之客户端和服务端握手详解
Sep 18 Python
将Dataframe数据转化为ndarry数据的方法
Jun 28 Python
Django组件之cookie与session的使用方法
Jan 10 Python
Python3实现从排序数组中删除重复项算法分析
Apr 03 Python
基于Django ORM、一对一、一对多、多对多的全面讲解
Jul 26 Python
基于Django实现日志记录报错信息
Dec 17 Python
tensorflow 实现自定义layer并添加到计算图中
Feb 04 Python
python 对任意数据和曲线进行拟合并求出函数表达式的三种解决方案
Feb 18 Python
Django实现将一个字典传到前端显示出来
Apr 03 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
用mysql内存表来代替php session的类
2009/02/01 PHP
PHP COOKIE及时生效的方法介绍
2014/02/14 PHP
php遍历数组的4种方法总结
2014/07/05 PHP
PHP实现QQ空间自动回复说说的方法
2015/12/02 PHP
CodeIgniter配置之SESSION用法实例分析
2016/01/19 PHP
php 多继承的几种常见实现方法示例
2019/11/18 PHP
用Javscript实现表单复选框的全选功能
2007/05/25 Javascript
javascript 跳转代码集合
2009/12/03 Javascript
关于this和self的使用说明
2010/08/01 Javascript
基于jquery的仿百度的鼠标移入图片抖动效果
2010/09/17 Javascript
JS 排序输出实现table行号自增前端动态生成的tr
2014/08/13 Javascript
JS实现的左侧竖向滑动菜单效果代码
2015/10/19 Javascript
jquery实现自定义图片裁剪功能【推荐】
2017/03/08 Javascript
BootStrap中的Fontawesome 图标
2017/05/25 Javascript
React Native中Navigator的使用方法示例
2017/10/13 Javascript
setTimeout时间设置为0详细解析
2018/03/13 Javascript
详解各版本React路由的跳转的方法
2018/05/10 Javascript
JavaScript多态与封装实例分析
2018/07/27 Javascript
详解vue-cli3 中跨域解决方案
2019/04/10 Javascript
Vue实现点击显示不同图片的效果
2019/08/10 Javascript
解决vue.js提交数组时出现数组下标的问题
2019/11/05 Javascript
以一个投票程序的实例来讲解Python的Django框架使用
2016/02/18 Python
Python实现七彩蟒蛇绘制实例代码
2018/01/16 Python
django的登录注册系统的示例代码
2018/05/14 Python
python修改FTP服务器上的文件名
2019/09/11 Python
python使用HTMLTestRunner导出饼图分析报告的方法
2019/12/30 Python
使用sublime text3搭建Python编辑环境的实现
2021/01/12 Python
Python3+Appium安装及Appium模拟微信登录方法详解
2021/02/16 Python
中外合拍动画首获奥斯卡提名,“上海出品”《飞奔去月球》能否拿下最终大奖?
2021/03/16 国漫
移动端Html5页面生成图片解决方案
2018/08/07 HTML / CSS
日语翻译个人求职的自我评价
2013/10/14 职场文书
公司周年庆典邀请函
2014/01/12 职场文书
2014年员工工作总结范文
2014/11/18 职场文书
2015年七一建党节慰问信
2015/03/23 职场文书
2015年计划生育责任书
2015/05/08 职场文书
JavaScript实现两个数组的交集
2022/03/25 Javascript