Python爬虫之Selenium实现窗口截图


Posted in Python onDecember 04, 2020

前言:由程序去执行的操作不允许有任何误差,有些时候在测试的时候未出现问题,但是放到服务器上就会报错,而且打印的错误信息并不十分明确。这时,我在想如果在脚本执行出错的时候能对当前窗口截图保存,那么通过图片就可以非常直观地看出出错的原因。WebDriver提供了截图函数get_screenshot_as_file()来截取当前窗口。

本章中用到的关键方法如下:

get_screenshot_as_file():截图

from selenium import webdriver

driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')

# 截图,图片后缀最好为.png,如果是其他的执行的时候会有警告,但不会报错
driver.get_screenshot_as_file("D:\\baidu_index.png")

driver.quit()

实例:

#窗口截图操作
#coding utf-8

from selenium import webdriver
from time import sleep

driver = webdriver.Firefox()

url = "http://www.baidu.com"

driver.get(url)

driver.find_element_by_id('kw').send_keys('selenium python')
driver.find_element_by_id('su').click()

sleep(2)

driver.get_screenshot_as_file("D:\\baidu_error.jpg")

driver.quit()

运行结果:

有个warning,什么意思呢,就是说截图最好是使用 .png格式的图片,而我的代码中使用的是.jpg格式,但是,不影响最终结果

 file type. It should end with a `.png` extension
  "type. It should end with a `.png` extension", UserWarning)

网页截图: - 不出意外,渣度第一时间给你推送广告!!呵呵呵!-

Python爬虫之Selenium实现窗口截图

Selenium文集传送门:

标题 简介
Python爬虫 - Selenium(1)安装和简单使用 详细介绍Selenium的依赖环境在Windows和Centos7上的安装及简单使用
Python爬虫 - Selenium(2)元素定位和WebDriver常用方法 详细介绍定位元素的8种方式并配合点击和输入、提交、获取断言信息等方法的使用
Python爬虫 - Selenium(3)控制浏览器的常用方法 详细介绍自定义浏览器窗口大小或全屏、控制浏览器后退、前进、刷新浏览器等方法的使用
Python爬虫 - Selenium(4)配置启动项参数 详细介绍Selenium启动项参数的配置,其中包括无界面模式、浏览器窗口大小设置、浏览器User-Agent (请求头)等等
Python爬虫 - Selenium(5)鼠标事件 详细介绍鼠标右击、双击、拖动、鼠标悬停等方法的使用
Python爬虫 - Selenium(6)键盘事件 详细介绍键盘的操作,几乎包含所有常用按键以及组合键
Python爬虫 - Selenium(7)多窗口切换 详细介绍Selenium是如何实现在不同的窗口之间自由切换
Python爬虫 - Selenium(8)frame/iframe表单嵌套页面 详细介绍如何从当前定位的主体切换为frame/iframe表单的内嵌页面中
Python爬虫 - Selenium(9)警告框(弹窗)处理 详细介绍如何定位并处理多类警告弹窗
Python爬虫 - Selenium(10)下拉框处理 详细介绍如何灵活的定位并处理下拉框
Python爬虫 - Selenium(11)文件上传 详细介绍如何优雅的通过send_keys()指定文件进行上传
Python爬虫 - Selenium(12)获取登录Cookies,并添加Cookies自动登录 详细介绍如何获取Cookies和使用Cookies进行自动登录
Python爬虫 - Selenium(13)设置元素等待 详细介绍如何优雅的设置元素等待时间,防止程序运行过快而导致元素定位失败
Python爬虫 - Selenium(14)窗口截图 详细介绍如何使用窗口截图
Python爬虫 - Selenium(15)关闭浏览器 详细介绍两种关闭窗口的区别

到此这篇关于Python爬虫之Selenium实现窗口截图的文章就介绍到这了,更多相关Selenium 窗口截图内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python 爬虫出现403禁止访问错误详解
Mar 11 Python
Python实现PS图像调整黑白效果示例
Jan 25 Python
使用Python的SymPy库解决数学运算问题的方法
Mar 27 Python
Python中函数参数匹配模型详解
Jun 09 Python
Django框架orM与自定义SQL语句混合事务控制操作
Jun 27 Python
Python多线程模块Threading用法示例小结
Nov 09 Python
numpy按列连接两个维数不同的数组方式
Dec 06 Python
python装饰器的特性原理详解
Dec 25 Python
Python3 filecmp模块测试比较文件原理解析
Mar 23 Python
python3 正则表达式基础廖雪峰
Mar 25 Python
解决pycharm导入numpy包的和使用时报错:RuntimeError: The current Numpy installation (‘D:\\python3.6\\lib\\site-packa的问题
Dec 08 Python
Pandas实现DataFrame的简单运算、统计与排序
Mar 31 Python
python 爬取英雄联盟皮肤并下载的示例
Dec 04 #Python
Python爬虫之Selenium设置元素等待的方法
Dec 04 #Python
Selenium获取登录Cookies并添加Cookies自动登录的方法
Dec 04 #Python
Python爬虫中Selenium实现文件上传
Dec 04 #Python
利用python进行文件操作
Dec 04 #Python
Python爬虫之Selenium下拉框处理的实现
Dec 04 #Python
Python爬虫之Selenium警告框(弹窗)处理
Dec 04 #Python
You might like
模板引擎Smarty深入浅出介绍
2006/12/06 PHP
php7下的filesize函数
2019/09/30 PHP
javascritp实现input输入框相关限制用法
2007/06/29 Javascript
javascript 解析后的xml对象的读取方法细解
2009/07/25 Javascript
javascript数字数组去重复项的实现代码
2010/12/30 Javascript
基于JQuery的模拟苹果桌面Dock效果(稳定版)
2012/10/15 Javascript
通过JavaScript使Div居中并随网页大小改变而改变
2013/06/24 Javascript
多种方法判断Javascript对象是否存在
2013/09/22 Javascript
一款基于jQuery的图片场景标注提示弹窗特效
2015/01/05 Javascript
JavaScript动态修改网页元素内容的方法
2015/03/21 Javascript
JS生成某个范围的随机数【四种情况详解】
2016/04/20 Javascript
jstl中判断list中是否包含某个值的简单方法
2016/10/14 Javascript
jquery封装插件时匿名函数形参和实参的写法解释
2017/02/14 Javascript
详解vue2路由vue-router配置(懒加载)
2017/04/08 Javascript
如何使用bootstrap框架 bootstrap入门必看!
2017/04/13 Javascript
JS装饰器函数用法总结
2018/04/21 Javascript
vue完成项目后,打包成静态文件的方法
2018/09/03 Javascript
微信小程序拍照和摄像功能实现方法示例
2019/02/01 Javascript
Vue Echarts实现可视化世界地图代码实例
2019/05/07 Javascript
jQuery实现弹幕特效
2019/11/29 jQuery
vue.js自定义组件实现v-model双向数据绑定的示例代码
2020/01/08 Javascript
nodejs中内置模块fs,path常见的用法说明
2020/11/07 NodeJs
[51:17]Mski vs VGJ.S Supermajor小组赛C组 BO3 第三场 6.3
2018/06/04 DOTA
Python实现两个list对应元素相减操作示例
2017/06/09 Python
CentOS中升级Python版本的方法详解
2017/07/10 Python
python 直接赋值和copy的区别详解
2019/08/07 Python
Python 使用office365邮箱的示例
2020/10/29 Python
python实现发送邮件
2021/03/02 Python
CSS3属性box-shadow使用详细教程
2012/01/21 HTML / CSS
css sprite简单实例
2016/05/23 HTML / CSS
检查接待方案
2014/02/27 职场文书
2016年教师节感恩寄语
2015/12/04 职场文书
八年级英语教学反思
2016/02/15 职场文书
自己搭建resnet18网络并加载torchvision自带权重的操作
2021/05/13 Python
苹果M1芯片安装nginx 并且部署vue项目步骤详解
2021/11/20 Servers
Oracle用户管理及赋权
2022/04/24 Oracle