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 实现文件的递归拷贝实现代码
Aug 02 Python
Python自定义函数的创建、调用和函数的参数详解
Mar 11 Python
Python随机生成信用卡卡号的实现方法
May 14 Python
Python实现的爬虫功能代码
Jun 24 Python
Python Socket实现简单TCP Server/client功能示例
Aug 05 Python
通过python3实现投票功能代码实例
Sep 26 Python
python 矢量数据转栅格数据代码实例
Sep 30 Python
python numpy数组复制使用实例解析
Jan 10 Python
Mysql数据库反向生成Django里面的models指令方式
May 18 Python
Python数据可视化图实现过程详解
Jun 12 Python
python 判断一组数据是否符合正态分布
Sep 23 Python
详解Python如何批量采集京东商品数据流程
Jan 22 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
Apache, PHP在Windows 9x/NT下的安装与配置 (一)
2006/10/09 PHP
解析php session_set_save_handler 函数的用法(mysql)
2013/06/29 PHP
PHP扩展模块Pecl、Pear以及Perl的区别
2014/04/09 PHP
19个Android常用工具类汇总
2014/12/30 PHP
CodeIgniter配置之config.php用法实例分析
2016/01/19 PHP
php日期操作技巧小结
2016/06/25 PHP
laradock环境docker-compose操作详解
2019/07/29 PHP
javascript 精粹笔记
2010/05/09 Javascript
解析John Resig Simple JavaScript Inheritance代码
2012/12/03 Javascript
javascript代码运行不出来执行错误的可能情况整理
2013/10/18 Javascript
asp.net刷新本页面的六种方法总结
2014/01/07 Javascript
最短的IE判断var ie=!-[1,]分析
2014/05/28 Javascript
jquery 取子节点及当前节点属性值
2014/07/25 Javascript
jquery果冻抖动效果实现方法
2015/01/15 Javascript
分享十五款 jQuery 社交网络分享插件
2015/05/16 Javascript
浅谈JavaScript中的Math.atan()方法的使用
2015/06/14 Javascript
使用jQuery Mobile框架开发移动端Web App的入门教程
2016/05/17 Javascript
基于JS实现二维码图片固定在右下角某处并跟随滚动条滚动
2017/02/08 Javascript
3种vue路由传参的基本模式
2018/02/22 Javascript
基于js Canvas实现二次贝塞尔曲线
2018/12/25 Javascript
javascript中this的用法实践分析
2019/07/29 Javascript
python计算程序开始到程序结束的运行时间和程序运行的CPU时间
2013/11/28 Python
使用Python中的greenlet包实现并发编程的入门教程
2015/04/16 Python
Python中read()、readline()和readlines()三者间的区别和用法
2017/07/30 Python
python pandas模块基础学习详解
2019/07/03 Python
python中return的返回和执行实例
2019/12/24 Python
HTML5 解决苹果手机不能自动播放音乐问题
2017/12/27 HTML / CSS
美国隐形眼镜销售网站:ContactsDirect
2017/10/28 全球购物
个人职业生涯规划书1500字
2013/12/31 职场文书
《圆明园的毁灭》教学反思
2014/02/28 职场文书
党员示范岗材料
2014/12/19 职场文书
团干部培训班心得体会
2016/01/06 职场文书
五年级作文之劳动作文
2019/11/12 职场文书
Golang中interface{}转为数组的操作
2021/04/30 Golang
简单聊聊Golang中defer预计算参数
2022/03/25 Golang
使用Ajax实现无刷新上传文件
2022/04/12 Javascript