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编写一个简单的Lisp解释器的教程
Apr 03 Python
Python利用ansible分发处理任务
Aug 04 Python
Python中新式类与经典类的区别详析
Jul 10 Python
Python 3.6打包成EXE可执行程序的实现
Oct 18 Python
使用python实现回文数的四种方法小结
Nov 24 Python
Python3 使用selenium插件爬取苏宁商家联系电话
Dec 23 Python
双向RNN:bidirectional_dynamic_rnn()函数的使用详解
Jan 20 Python
在python3中使用shuffle函数要注意的地方
Feb 28 Python
python matplotlib:plt.scatter() 大小和颜色参数详解
Apr 14 Python
python 画图 图例自由定义方式
Apr 17 Python
Python headers请求头如何实现快速添加
Nov 03 Python
Python与C/C++的相互调用案例
Mar 04 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
win2003服务器使用WPS的COM组件的一些问题解决方法
2012/01/11 PHP
xss防御之php利用httponly防xss攻击
2014/03/21 PHP
PHP数组排序之sort、asort与ksort用法实例
2014/09/08 PHP
php实现数组中索引关联数据转换成json对象的方法
2015/07/08 PHP
thinkphp实现图片上传功能
2016/01/13 PHP
Laravel如何创建服务器提供者实例代码
2019/04/15 PHP
tp5框架的增删改查操作示例
2019/10/31 PHP
一直复略了的一个问题,关于表单重复提交
2007/02/15 Javascript
js批量设置样式的三种方法不推荐使用with
2013/02/25 Javascript
JS原型对象的创建方法详解
2016/06/16 Javascript
浅析Vue 和微信小程序的区别、比较
2018/08/03 Javascript
animate.css在vue项目中的使用教程
2018/08/05 Javascript
Vue Promise的axios请求封装详解
2018/08/13 Javascript
vue项目中跳转到外部链接的实例讲解
2018/09/20 Javascript
vue-cli项目使用mock数据的方法(借助express)
2019/04/15 Javascript
jQuery 动画与停止动画效果实例详解
2020/05/19 jQuery
vue组件开发之tab切换组件使用详解
2020/08/21 Javascript
Python装饰器的函数式编程详解
2015/02/27 Python
Python中动态检测编码chardet的使用教程
2017/07/06 Python
pandas基于时间序列的固定时间间隔求均值的方法
2019/07/04 Python
python调用webservice接口的实现
2019/07/12 Python
python django下载大的csv文件实现方法分析
2019/07/19 Python
Django Rest framework权限的详细用法
2019/07/25 Python
使用Html5、CSS实现文字阴影效果
2018/01/17 HTML / CSS
英国天然宝石首饰购买网站:Gemondo Jewellery
2018/10/23 全球购物
Shein英国:女性时尚网上商店
2019/04/10 全球购物
采购文员岗位职责
2013/11/20 职场文书
普通员工辞职信
2014/01/17 职场文书
安全生产实施方案
2014/02/23 职场文书
初三学生个人自我评定
2014/04/06 职场文书
党的群众路线对照检查材料思想汇报
2014/09/25 职场文书
解析目标检测之IoU
2021/06/26 Python
JS封装cavans多种滤镜组件
2022/02/15 Javascript
Python Matplotlib绘制两个Y轴图像
2022/04/13 Python
Flutter Navigator 实现路由传递参数
2022/04/22 Java/Android
javascript中Set、Map、WeakSet、WeakMap区别
2022/12/24 Javascript