Python+selenium实现截图图片并保存截取的图片


Posted in Python onJanuary 05, 2018

这篇文章介绍如何利用Selenium的方法进行截图,在测试过程中,是有必要截图,特别是遇到错误的时候进行截图。在selenium for Python中主要有三个截图方法,我们挑选其中最常用的一种。

截图技能对于测试人员来说应该是较为重要的一个技能。

在自动化测试中,截图可以帮助我们直观的定位错误、记录测试步骤。

记得以前在给某跨国银行做自动化项目的时候,某银的PM要求我们自动化测试的每一步至少需要1个截图,以证明每个功能都被自动化测试给覆盖过,在这种情况下截图就成了证明自动化测试有效性的重要手段。

好的测试人员都会截得一手好图,就跟骨灰级宅男定会吟得一手好诗一般。

webdriver的截图功能十分强悍。以前在截图的时候,最麻烦的问题莫过于页面太长而只能截到一屏,屏幕以外需要移动滚动条才能看到的区域一般是截不到的。现在webdriver解决了这个问题,无论页面有多长,webdriver都能比较完美的截到完整的页面。

下面的代码演示了如何使用webdriver进行截图:

# -*- coding: utf-8 -*-
from selenium import webdriver
import unittest
import os,sys,time
import HTMLTestReport
#登录
driver =webdriver.Firefox()
current_time = time.strftime("%Y-%m-%d-%H_%M_%S", time.localtime(time.time()))
current_time1 = time.strftime("%Y-%m-%d", time.localtime(time.time()))
print(current_time )
print(current_time1 )
# 必须打印图片路径HTMLTestRunner才能捕获并且生成路径,\image\**\\**.png 是获取路径的条件,必须这样的目录
#设置存储图片路径,测试结果图片可以按照每天进行区分
#通过if进行断言判断
driver.get("https://baidu.com/")
#新创建路径“.”表示当前整个.py文件的路径所在的位置,“\\”路径分割符,其中的一个是“\”表示转义字符
pic_path = '.\\result\\image\\' + current_time1+'\\' + current_time +'.png'
print(pic_path)
time.sleep(5)
print(driver.title)
#截取当前url页面的图片,并将截取的图片保存在指定的路径下面(pic_path),注:以下两种方法都可以
driver.save_screenshot(pic_path)
driver.save_screenshot('.\\result\\image\\' + current_time1+'\\' + current_time +'.png') 
if u'百度一下,你就知道' == driver.title:
  print ('Assertion test pass.') 
else:
  print ('Assertion test fail.')
 #通过try抛出异常进行断言判断  
driver.get("https://baidu.com/")
driver.save_screenshot(pic_path)
try:
  assert u'百度一下,你就知道' == driver.title
  print ('Assertion test pass.') 
except Exception as e:
  print ('Assertion test fail.', format(e))
time.sleep(5)
driver.quit()

save_screenshot方法实现了截图功能,只需要传入保存截图的文件名就可以了,十分方便。

总结

以上所述是小编给大家介绍的Python+selenium实现截图图片并保存截取的图片,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
Python多线程编程(五):死锁的形成
Apr 05 Python
在Python中使用lambda高效操作列表的教程
Apr 24 Python
python访问系统环境变量的方法
Apr 29 Python
python通过ftplib登录到ftp服务器的方法
May 08 Python
Python数据结构之翻转链表
Feb 25 Python
python实现从文件中读取数据并绘制成 x y 轴图形的方法
Oct 14 Python
python实现n个数中选出m个数的方法
Nov 13 Python
Python基础学习之类与实例基本用法与注意事项详解
Jun 17 Python
python3射线法判断点是否在多边形内
Jun 28 Python
树莓派3 搭建 django 服务器的实例
Aug 29 Python
Python configparser模块操作代码实例
Jun 08 Python
Python使用文件操作实现一个XX信息管理系统的示例
Jul 02 Python
微信跳一跳辅助python代码实现
Jan 05 #Python
使用python为mysql实现restful接口
Jan 05 #Python
微信跳一跳python代码实现
Jan 05 #Python
python+opencv轮廓检测代码解析
Jan 05 #Python
python selenium UI自动化解决验证码的4种方法
Jan 05 #Python
轻松实现TensorFlow微信跳一跳的AI
Jan 05 #Python
OpenCV-Python实现轮廓检测实例分析
Jan 05 #Python
You might like
php验证码生成代码
2015/11/11 PHP
iOS10推送通知开发教程
2016/09/19 PHP
PHP命名空间(namespace)原理与用法详解
2019/12/11 PHP
javascript event 事件解析
2011/01/31 Javascript
javascript克隆对象深度介绍
2012/11/20 Javascript
Js控制弹窗实现在任意分辨率下居中显示
2013/08/01 Javascript
javascript框架设计之框架分类及主要功能
2015/06/23 Javascript
JS实现网页每隔3秒弹出一次对话框的方法
2015/11/09 Javascript
Bootstrap入门书籍之(四)菜单、按钮及导航
2016/02/17 Javascript
为jQuery-easyui的tab组件添加右键菜单功能的简单实例
2016/10/10 Javascript
Bootstrap框架实现广告轮播效果
2016/11/28 Javascript
详解angular2采用自定义指令(Directive)方式加载jquery插件
2017/02/09 Javascript
JavaScript日期工具类DateUtils定义与用法示例
2018/09/03 Javascript
jQuery+css last-child实现选择最后一个子元素操作示例
2018/12/10 jQuery
javascript实现点击星星小游戏
2019/12/24 Javascript
vue el-upload上传文件的示例代码
2020/12/21 Vue.js
Vue通过阿里云oss的url连接直接下载文件并修改文件名的方法
2020/12/25 Vue.js
element 动态合并表格的步骤
2020/12/31 Javascript
介绍Python的Django框架中的静态资源管理器django-pipeline
2015/04/25 Python
使用Python写CUDA程序的方法
2017/03/27 Python
django使用图片延时加载引起后台404错误
2017/04/18 Python
详谈套接字中SO_REUSEPORT和SO_REUSEADDR的区别
2018/04/28 Python
python使用wxpy实现微信消息防撤回脚本
2019/04/29 Python
python增加图像对比度的方法
2019/07/12 Python
Django项目之Elasticsearch搜索引擎的实例
2019/08/21 Python
Python多线程爬取豆瓣影评API接口
2019/10/22 Python
使用celery和Django处理异步任务的流程分析
2020/02/19 Python
Python如何使用turtle库绘制图形
2020/02/26 Python
Python 打印自己设计的字体的实例讲解
2021/01/04 Python
HTML5 WebGL 实现民航客机飞行监控系统
2019/07/25 HTML / CSS
有针对性的求职自荐信
2013/11/14 职场文书
教师四风对照检查材料思想汇报
2014/09/17 职场文书
2014年关工委工作总结
2014/11/17 职场文书
课题研究阶段性总结
2015/08/13 职场文书
解决redis批量删除key值的问题
2022/03/23 Redis
js前端面试常见浏览器缓存强缓存及协商缓存实例
2022/06/21 Javascript