Python截图并保存的具体实例


Posted in Python onJanuary 14, 2021

大家肯定会疑问,为什么需要用python去进行截图保存,或者说是我们的QQ、微信都是自带截图工具的,可以直接拿过来进行使用的,但是事实上,一般在测试的时候,经常会遇到代码报错等问题,这种需要反馈的时候,就需要利用到python自行截图,好啦,下面就是实现的几个操作。

1、selenium for python

实现代码如下:

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()

2、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 Requests安装与简单运用
Apr 07 Python
Python scikit-learn 做线性回归的示例代码
Nov 01 Python
详解Django+Uwsgi+Nginx的生产环境部署
Jun 25 Python
使用Python实现从各个子文件夹中复制指定文件的方法
Oct 25 Python
Python实现的简单线性回归算法实例分析
Dec 26 Python
python随机在一张图像上截取任意大小图片的方法
Jan 24 Python
详解python中sort排序使用
Mar 23 Python
python读写配置文件操作示例
Jul 03 Python
Python搭建HTTP服务过程图解
Dec 14 Python
如何用tempfile库创建python进程中的临时文件
Jan 28 Python
python flappy bird小游戏分步实现流程
Feb 15 Python
Python闭包的定义和使用方法
Apr 11 Python
Python从MySQL数据库中面抽取试题,生成试卷
Jan 14 #Python
DRF使用simple JWT身份验证的实现
Jan 14 #Python
如何用Python提取10000份log中的产品信息
Jan 14 #Python
python自动生成证件号的方法示例
Jan 14 #Python
用python批量移动文件
Jan 14 #Python
python用700行代码实现http客户端
Jan 14 #Python
python批量生成身份证号到Excel的两种方法实例
Jan 14 #Python
You might like
一个简单的PHP投票程序源码
2007/03/11 PHP
PHP通过iconv将字符串从GBK转换为UTF8字符集
2011/07/18 PHP
sql注入与转义的php函数代码
2013/06/17 PHP
Laravel实现定时任务的示例代码
2017/08/10 PHP
js 兼容多浏览器的回车和鼠标焦点事件代码(IE6/7/8,firefox,chrome)
2010/04/14 Javascript
JavaScript 模拟类机制及私有变量的方法及思路
2013/07/10 Javascript
纯文字版返回顶端的js代码
2013/08/01 Javascript
开发插件的两个方法jquery.fn.extend与jquery.extend
2013/11/21 Javascript
Ajax中解析Json的两种方法对比分析
2015/06/25 Javascript
利用Javascript仿Excel的数据透视分析功能
2016/09/07 Javascript
OkHttp踩坑随笔为何 response.body().string() 只能调用一次
2018/01/08 Javascript
vue的mixins属性详解
2018/03/14 Javascript
去掉vue 中的代码规范检测两种方法(Eslint验证)
2018/03/21 Javascript
vue实现div拖拽互换位置
2020/07/29 Javascript
详解如何使用微信小程序云函数发送短信验证码
2019/03/13 Javascript
JavaScript undefined及null区别实例解析
2020/07/21 Javascript
Vue开发中常见的套路和技巧总结
2020/11/24 Vue.js
JavaScript 生成唯一ID的几种方式
2021/02/19 Javascript
[01:19:46]DOTA2-DPC中国联赛 正赛 SAG vs DLG BO3 第一场 2月28日
2021/03/11 DOTA
Python通过select实现异步IO的方法
2015/06/04 Python
Python 字符串与数字输出方法
2018/07/16 Python
详解通过API管理或定制开发ECS实例
2018/09/30 Python
使用Python批量修改文件名的代码实例
2019/01/24 Python
浅谈Python爬虫基本套路
2019/03/25 Python
django 自定义filter 判断if var in list的例子
2019/08/20 Python
Python基于类路径字符串获取静态属性
2020/03/12 Python
python元组拆包实现方法
2021/02/28 Python
css3给背景图片加颜色遮罩的方法
2019/11/05 HTML / CSS
HTML5自定义属性的问题分析
2019/08/16 HTML / CSS
大学新生军训感言
2014/02/25 职场文书
2014年大学生社会实践自我鉴定
2014/09/26 职场文书
医院领导班子四风问题对照检查材料
2014/10/26 职场文书
2014年卫生院工作总结
2014/12/03 职场文书
预备党员转正材料
2014/12/19 职场文书
雷锋的故事观后感
2015/06/10 职场文书
MySQL5.7并行复制原理及实现
2021/06/03 MySQL