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实现在sqlite动态创建表的方法
May 08 Python
Python使用multiprocessing实现一个最简单的分布式作业调度系统
Mar 14 Python
Python实现PS图像抽象画风效果的方法
Jan 23 Python
浅谈Python在pycharm中的调试(debug)
Nov 29 Python
Python3爬虫学习入门教程
Dec 11 Python
对python修改xml文件的节点值方法详解
Dec 24 Python
python中下标和切片的使用方法解析
Aug 27 Python
使用Python为中秋节绘制一块美味的月饼
Sep 11 Python
django框架基于queryset和双下划线的跨表查询操作详解
Dec 11 Python
Python基础之Socket通信原理
Apr 22 Python
Pillow图像处理库安装及使用
Apr 12 Python
Python中的matplotlib绘制百分比堆叠柱状图,并为每一个类别设置不同的填充图案
Apr 20 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学习笔记 php中面向对象三大特性之一[封装性]的应用
2011/06/13 PHP
php模块memcache和memcached区别分析
2011/06/14 PHP
PHP在网页中动态生成PDF文件详细教程
2014/07/05 PHP
Yii框架调试心得--在页面输出执行sql语句
2014/12/25 PHP
PHP简单实现断点续传下载的方法
2015/09/25 PHP
浅谈php中的循环while、do...while、for、foreach四种循环
2016/11/05 PHP
php使用fullcalendar日历插件详解
2019/03/06 PHP
php传值和传引用的区别点总结
2019/11/19 PHP
function, new function, new Function之间的区别
2007/03/08 Javascript
jquery.validate使用攻略 第五步 正则验证
2010/07/01 Javascript
jQuery EasyUI API 中文文档 - Calendar日历使用
2011/10/19 Javascript
jQuery之折叠面板的深入解析
2013/06/19 Javascript
jQuery.extend()的实现方式详解及实例
2013/06/29 Javascript
JS中for循序中延迟加载动态效果的具体实现
2013/08/18 Javascript
Web表单提交之disabled问题js解决方法
2015/01/13 Javascript
整理关于Bootstrap导航的慕课笔记
2017/03/29 Javascript
纯js实现图片匀速淡入淡出效果
2017/08/22 Javascript
JS调用安卓手机摄像头扫描二维码
2018/10/16 Javascript
vue+iview动态渲染表格详解
2019/03/19 Javascript
微信小程序使用字体图标的方法
2019/05/23 Javascript
微信小程序实现录制、试听、上传音频功能(带波形图)
2020/02/27 Javascript
jQuery 函数实例分析【函数声明、函数表达式、匿名函数等】
2020/05/19 jQuery
[01:31:22]Ti4 循环赛第四日附加赛LGD vs Mouz
2014/07/13 DOTA
NetworkX之Prim算法(实例讲解)
2017/12/22 Python
对numpy和pandas中数组的合并和拆分详解
2018/04/11 Python
pandas DataFrame实现几列数据合并成为新的一列方法
2018/06/08 Python
Flask核心机制之上下文源码剖析
2018/12/25 Python
python实现截取屏幕保存文件,删除N天前截图的例子
2019/08/27 Python
解决更改AUTH_USER_MODEL后出现的问题
2020/05/14 Python
python如何进入交互模式
2020/07/06 Python
python实现学生管理系统开发
2020/07/24 Python
乌克兰鞋类购物网站:Eobuv.com.ua
2020/11/28 全球购物
国际金融专业大学生职业生涯规划书
2013/12/28 职场文书
学习群众路线的心得体会
2014/11/05 职场文书
2015年创先争优活动总结
2015/03/27 职场文书
Java存储没有重复元素的数组
2022/04/29 Java/Android