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算法之栈(stack)的实现
Aug 18 Python
python实现定时自动备份文件到其他主机的实例代码
Feb 23 Python
Selenium(Python web测试工具)基本用法详解
Aug 10 Python
Python+OpenCV采集本地摄像头的视频
Apr 25 Python
Python实现二叉树前序、中序、后序及层次遍历示例代码
May 18 Python
python flask框架实现重定向功能示例
Jul 02 Python
Python循环结构的应用场景详解
Jul 11 Python
Django1.11自带分页器paginator的使用方法
Oct 31 Python
Tensorflow限制CPU个数实例
Feb 06 Python
python使用tkinter实现透明窗体上绘制随机出现的小球(实例代码)
May 17 Python
总结Python使用过程中的bug
Jun 18 Python
python turtle绘制多边形和跳跃和改变速度特效
Mar 16 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 csv操作类代码
2009/12/14 PHP
PHP、Nginx、Apache中禁止网页被iframe引用的方法
2020/10/01 PHP
跟我学Laravel之请求(Request)的生命周期
2014/10/15 PHP
PHP创建文件,并向文件中写入数据,覆盖,追加的实现代码
2016/03/25 PHP
PHP+MySql+jQuery实现的"顶"和"踩"投票功能
2016/05/21 PHP
php基于闭包实现函数的自调用(递归)实例分析
2016/11/11 PHP
区分JS中的undefined,null,"",0和false
2007/03/08 Javascript
javascript实现的在当前窗口中漂浮框的代码
2010/03/15 Javascript
打豆豆小游戏 用javascript编写的[打豆豆]小游戏
2013/01/08 Javascript
js 图片随机不定向浮动的实现代码
2013/07/02 Javascript
javascript实现点击按钮让DIV层弹性移动的方法
2015/02/24 Javascript
JS实现在页面随时自定义背景颜色的方法
2015/02/27 Javascript
JavaScript学习笔记(三):JavaScript也有入口Main函数
2015/09/12 Javascript
JavaScript File API实现文件上传预览
2016/02/02 Javascript
AngularJS基础 ng-model 指令详解及示例代码
2016/08/02 Javascript
关于 angularJS的一些用法
2017/11/29 Javascript
浅谈Webpack 持久化缓存实践
2018/03/22 Javascript
mac上配置Android环境变量的方法
2018/07/08 Javascript
小程序视频或音频自定义可拖拽进度条的示例代码
2018/09/30 Javascript
js实现文字头像的生成代码
2020/03/07 Javascript
js实现幻灯片轮播图
2020/08/14 Javascript
[36:33]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第二场 11.29
2020/12/02 DOTA
在阿里云服务器上配置CentOS+Nginx+Python+Flask环境
2016/06/18 Python
Python命令启动Web服务器实例详解
2017/02/23 Python
用python结合jieba和wordcloud实现词云效果
2017/09/05 Python
python3实现SMTP发送邮件详细教程
2018/06/19 Python
使用python+whoosh实现全文检索
2019/12/09 Python
Anaconda3中的Jupyter notebook添加目录插件的实现
2020/05/18 Python
Django生成数据库及添加用户报错解决方案
2020/10/09 Python
汽车维修工岗位职责
2014/02/12 职场文书
2015教师节通讯稿
2015/07/20 职场文书
小学语文教学反思范文
2016/03/03 职场文书
2016年“我们的节日·重阳节”主题活动总结
2016/04/01 职场文书
餐饮行业关注的9大营销策略
2019/08/26 职场文书
浅谈pytorch中stack和cat的及to_tensor的坑
2021/05/20 Python
关于flex 上下文中自动 margin的问题(完整例子)
2021/05/20 HTML / CSS