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实现跨文件全局变量的方法
Jul 07 Python
python开发之字符串string操作方法实例详解
Nov 12 Python
python验证码识别实例代码
Feb 03 Python
Jupyter中直接显示Matplotlib的图形方法
May 24 Python
详解Python3除法之真除法、截断除法和下取整对比
May 23 Python
解决django同步数据库的时候app models表没有成功创建的问题
Aug 09 Python
Python随机数函数代码实例解析
Feb 09 Python
jupyter notebook中美观显示矩阵实例
Apr 17 Python
python安装读取grib库总结(推荐)
Jun 24 Python
Python实现树莓派摄像头持续录像并传送到主机的步骤
Nov 30 Python
使用pandas读取表格数据并进行单行数据拼接的详细教程
Mar 03 Python
如何利用python和DOS获取wifi密码
Mar 31 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读取xml实例代码
2010/01/28 PHP
php自定义urlencode,urldecode函数实例
2015/03/24 PHP
Laravel基础_关于view共享数据的示例讲解
2019/10/14 PHP
JavaScript—window对象使用示例
2013/12/09 Javascript
javascript的数组和常用函数详解
2014/05/09 Javascript
Javascript基础教程之数据类型 (布尔型 Boolean)
2015/01/18 Javascript
微信JSSDK上传图片
2015/08/23 Javascript
js实现向右横向滑出的二级菜单效果
2015/08/27 Javascript
基于javascript制作微信聊天面板
2020/08/09 Javascript
聊一聊JavaScript作用域和作用域链
2016/05/03 Javascript
JS函数arguments数组获得实际传参数个数的实现方法
2016/05/28 Javascript
基于Bootstrap的后台管理面板 Bootstrap Metro Dashboard
2016/06/17 Javascript
KnockoutJS 3.X API 第四章之数据控制流foreach绑定
2016/10/10 Javascript
vue.js指令v-model使用方法
2017/03/20 Javascript
js 概率计算(简单版)
2017/09/12 Javascript
完美解决axios在ie下的兼容性问题
2018/03/05 Javascript
微信小程序仿朋友圈发布动态功能
2018/07/15 Javascript
新手快速上手webpack4打包工具的使用详解
2019/01/28 Javascript
[04:02]2014DOTA2国际邀请赛 BBC每日综述中国战队将再度登顶
2014/07/21 DOTA
python线程池的实现实例
2013/11/18 Python
python二分法实现实例
2013/11/21 Python
Linux下使用python自动修改本机网关代码分享
2015/05/21 Python
python验证码识别教程之滑动验证码
2018/06/04 Python
PyQt5高级界面控件之QTableWidget的具体使用方法
2020/02/23 Python
Python开发企业微信机器人每天定时发消息实例
2020/03/17 Python
Tostadora意大利:定制T恤
2019/04/08 全球购物
切尔西足球俱乐部官方网上商店:Chelsea FC
2019/06/17 全球购物
台湾7-ELEVEN线上购物中心:7-11
2021/01/21 全球购物
光盘行动倡议书
2014/02/02 职场文书
毕业评语大全
2014/05/04 职场文书
全国税务系统先进集体事迹材料
2014/05/19 职场文书
2014年村计划生育工作总结
2014/11/14 职场文书
大学生自荐信怎么写
2015/03/26 职场文书
导游词之西湖雷峰塔
2019/09/18 职场文书
创业计划书之农家乐
2019/10/09 职场文书
解决pytorch 损失函数中输入输出不匹配的问题
2021/06/05 Python