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中元类用法实例
Oct 10 Python
Python多层嵌套list的递归处理方法(推荐)
Jun 08 Python
python3中str(字符串)的使用教程
Mar 23 Python
Python实现分段线性插值
Dec 17 Python
Python匿名函数及应用示例
Apr 09 Python
pyqt5让图片自适应QLabel大小上以及移除已显示的图片方法
Jun 21 Python
cProfile Python性能分析工具使用详解
Jul 22 Python
Python+Tensorflow+CNN实现车牌识别的示例代码
Oct 11 Python
Python语言异常处理测试过程解析
Jan 08 Python
Python基础之列表常见操作经典实例详解
Feb 26 Python
pycharm部署、配置anaconda环境的教程
Mar 24 Python
Python数据可视化之基于pyecharts实现的地理图表的绘制
Jun 10 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采用file_get_contents代替使用curl实例
2014/11/07 PHP
php运行提示:Fatal error Allowed memory size内存不足的解决方法
2014/12/17 PHP
php将字符串全部转换成大写或者小写的方法
2015/03/17 PHP
PHP数组相加操作及与array_merge的区别浅析
2016/11/26 PHP
懒就要懒到底——鼠标自动点击(含时间判断)
2007/02/20 Javascript
js jquery分别实现动态的文件上传操作按钮的添加和删除
2014/01/13 Javascript
javascript简单性能问题及学习笔记
2014/02/04 Javascript
vue-cli的工程模板与构建工具详解
2018/09/27 Javascript
koa大型web项目中使用路由装饰器的方法示例
2019/04/02 Javascript
后台使用freeMarker和前端使用vue的方法及遇到的问题
2019/06/13 Javascript
JS如何实现动态添加的元素绑定事件
2019/11/12 Javascript
JS实现秒杀倒计时特效
2020/01/02 Javascript
浅谈js数组splice删除某个元素爬坑
2020/10/14 Javascript
vue组件中节流函数的失效的原因和解决方法
2020/12/02 Vue.js
[02:51]2014DOTA2 TI小组赛总结中国军团全部进军钥匙球馆
2014/07/15 DOTA
[01:02:26]DOTA2-DPC中国联赛 正赛 SAG vs RNG BO3 第二场 1月18日
2021/03/11 DOTA
Python中的元类编程入门指引
2015/04/15 Python
python中正则表达式的使用方法
2018/02/25 Python
Flask-Mail用法实例分析
2018/07/21 Python
基于python if 判断选择结构的实例详解
2019/05/06 Python
命令行运行Python脚本时传入参数的三种方式详解
2019/10/11 Python
CSS3 实现侧边栏展开收起动画
2014/12/22 HTML / CSS
html5给汉字加拼音加进度条的实现代码
2020/04/07 HTML / CSS
adidas美国官网:adidas US
2016/09/21 全球购物
德国鞋子网上商店:Omoda.de
2017/03/31 全球购物
蒂芙尼澳大利亚官方网站:Tiffany&Co. Australia
2017/08/27 全球购物
美国宠物用品网站:Value Pet Supplies
2018/03/17 全球购物
美国轮胎网站:Priority Tire
2018/11/28 全球购物
在子网210.27.48.21/30种有多少个可用地址?分别是什么?
2014/07/27 面试题
教师自我评价范例
2013/09/24 职场文书
医院护理人员的自我评价分享
2013/10/04 职场文书
劳动竞赛活动方案
2014/02/20 职场文书
计算机毕业大学生求职信
2014/06/26 职场文书
2014年消防工作总结
2014/11/21 职场文书
物业客服专员岗位职责
2015/04/07 职场文书
小学教学工作总结2015
2015/05/13 职场文书