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语言的12个基础知识点小结
Jul 10 Python
Python对象的深拷贝和浅拷贝详解
Aug 25 Python
python中执行shell命令的几个方法小结
Sep 18 Python
Python比较两个图片相似度的方法
Mar 13 Python
浅谈Python 字符串格式化输出(format/printf)
Jul 21 Python
python的unittest测试类代码实例
Dec 07 Python
Python3实现的Mysql数据库操作封装类
Jun 06 Python
Python线程下使用锁的技巧分享
Sep 13 Python
Empty test suite.(PyCharm程序运行错误的解决方法)
Nov 30 Python
pyqt5中QThread在使用时出现重复emit的实例
Jun 21 Python
在windows下使用python进行串口通讯的方法
Jul 02 Python
Python学习笔记之列表推导式实例分析
Aug 13 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怎样调用MSSQL的存储过程
2006/10/09 PHP
利用curl 多线程 模拟 并发的详解
2013/06/14 PHP
浅谈PHP中output_buffering
2015/07/13 PHP
PHP检测用户是否关闭浏览器的方法
2016/02/14 PHP
phpstudy默认不支持64位php的解决方法
2017/02/20 PHP
PHP环形链表实现方法示例
2017/09/15 PHP
javascript radio 联动效果
2009/03/04 Javascript
用JavaScript实现动画效果的方法
2013/07/20 Javascript
javascript的解析执行顺序在各个浏览器中的不同
2014/03/17 Javascript
使用 TypeScript 重新编写的 JavaScript 坦克大战游戏代码
2015/04/07 Javascript
js+css实现回到顶部按钮(back to top)
2016/03/02 Javascript
JS常用字符串方法(推荐)
2021/01/15 Javascript
Vue.js实现拖放效果的实例
2016/09/30 Javascript
javascript 操作cookies详解及实例
2017/02/22 Javascript
微信小程序实现滑动删除效果
2017/05/19 Javascript
es6中的解构赋值、扩展运算符和rest参数使用详解
2017/09/28 Javascript
Angular CLI在Angular项目中如何使用scss详解
2018/04/10 Javascript
Element图表初始大小及窗口自适应实现
2020/07/10 Javascript
vue 接口请求地址前缀本地开发和线上开发设置方式
2020/08/13 Javascript
简单谈谈offsetleft、offsetTop和offsetParent
2020/12/04 Javascript
Python模仿POST提交HTTP数据及使用Cookie值的方法
2014/11/10 Python
Python Web框架Flask下网站开发入门实例
2015/02/08 Python
Python中的localtime()方法使用详解
2015/05/22 Python
Python+matplotlib+numpy实现在不同平面的二维条形图
2018/01/02 Python
对Python 文件夹遍历和文件查找的实例讲解
2018/04/26 Python
pandas 快速处理 date_time 日期格式方法
2018/11/12 Python
计算机二级python学习教程(2) python语言基本语法元素
2019/05/16 Python
python 字符串追加实例
2019/07/20 Python
Pytorch 实现数据集自定义读取
2020/01/18 Python
Python 操作 MySQL数据库
2020/09/18 Python
微信浏览器取消缓存的方法
2015/03/28 HTML / CSS
HTML5地理定位_动力节点Java学院整理
2017/07/12 HTML / CSS
Martinelli官方商店:西班牙皮鞋和高跟鞋品牌
2019/07/30 全球购物
儿科护理实习自我鉴定
2013/09/19 职场文书
小学信息技术教学反思
2014/02/10 职场文书
解除劳动关系协议书范文
2014/09/11 职场文书