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实现基于权重的随机数2种方法
Apr 28 Python
python通过文件头判断文件类型
Oct 30 Python
如何处理Python3.4 使用pymssql 乱码问题
Jan 08 Python
深入理解python对json的操作总结
Jan 05 Python
Python2/3中urllib库的一些常见用法
Dec 19 Python
Django rest framework实现分页的示例
May 24 Python
Django实现支付宝付款和微信支付的示例代码
Jul 25 Python
利用python实现汉字转拼音的2种方法
Aug 12 Python
Python写出新冠状病毒确诊人数地图的方法
Feb 12 Python
python 实现PIL模块在图片画线写字
May 16 Python
pandas创建DataFrame的7种方法小结
Jun 14 Python
python 实现定时任务的四种方式
Apr 01 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 array_search() 函数使用
2010/04/13 PHP
php与c 实现按行读取文件实例代码
2017/01/03 PHP
Yii2 加载css、js 载静态资源的方法
2017/03/10 PHP
Thinkphp 框架基础之入口文件功能、定义与用法分析
2020/04/27 PHP
双击滚屏-常用推荐
2006/11/29 Javascript
枚举JavaScript对象的函数
2006/12/22 Javascript
javascript编程起步(第六课)
2007/02/27 Javascript
jQuery代码优化 选择符篇
2011/11/01 Javascript
如何用JavaScript动态呼叫函数(两种方式)
2013/05/03 Javascript
无刷新预览所选择的图片示例代码
2014/04/02 Javascript
jQuery 插件开发指南
2014/11/14 Javascript
js实现获取div坐标的方法
2015/11/16 Javascript
基于javascript实现tab切换特效
2016/03/29 Javascript
jQuery Mobile 和 Kendo UI 的比较
2016/05/05 Javascript
一篇看懂vuejs的状态管理神器 vuex状态管理模式
2017/04/20 Javascript
利用three.js画一个3D立体的正方体示例代码
2017/11/19 Javascript
vue2.0安装style/css loader的方法
2018/03/14 Javascript
跟老齐学Python之再深点,更懂list
2014/09/20 Python
python生成随机密码或随机字符串的方法
2015/07/03 Python
详解关于Django中ORM数据库迁移的配置
2018/10/08 Python
python卸载后再次安装遇到的问题解决
2019/07/10 Python
Pytorch 的损失函数Loss function使用详解
2020/01/02 Python
pycharm下配置pyqt5的教程(anaconda虚拟环境下+tensorflow)
2020/03/25 Python
8款使用 CSS3 实现超炫的 Loading(加载)的动画效果
2015/03/17 HTML / CSS
沙特阿拉伯网上购物:Sayidaty Mall
2018/05/06 全球购物
Unineed中文官网:高端护肤美妆与时尚配饰,英国直邮
2020/07/23 全球购物
JPA面试常见问题
2016/11/14 面试题
中医专业应届生求职信
2013/11/17 职场文书
网上商城创业计划书范文
2014/01/31 职场文书
2014年迎新年活动方案
2014/02/19 职场文书
技术总监管理岗位职责
2014/03/09 职场文书
舞蹈专业大学生职业规划范文
2014/03/12 职场文书
对照检查剖析材料
2014/09/30 职场文书
李白故里导游词
2015/02/12 职场文书
2016大学生暑期社会实践心得体会
2016/01/14 职场文书
技术转让协议书
2016/03/19 职场文书