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 相关文章推荐
探索Python3.4中新引入的asyncio模块
Apr 08 Python
python简单实现基于SSL的IRC bot实例
Jun 15 Python
Python2.7简单连接与操作MySQL的方法
Apr 27 Python
浅谈对yield的初步理解
May 29 Python
python实现稀疏矩阵示例代码
Jun 09 Python
Python搜索引擎实现原理和方法
Nov 27 Python
浅谈Python用QQ邮箱发送邮件时授权码的问题
Jan 29 Python
使用python分析统计自己微信朋友的信息
Jul 19 Python
Python如何调用JS文件中的函数
Aug 16 Python
python基于celery实现异步任务周期任务定时任务
Dec 30 Python
Python爬虫设置Cookie解决网站拦截并爬取蚂蚁短租的问题
Feb 22 Python
python数字转对应中文的方法总结
Aug 02 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阻止页面后退的方法分享
2014/02/17 PHP
php检测apache mod_rewrite模块是否安装的方法
2015/03/14 PHP
php操作redis缓存方法分享
2015/06/03 PHP
PHP加密解密类实例代码
2016/07/20 PHP
PHP处理Ajax请求与Ajax跨域问题
2017/02/13 PHP
PHP实现求解最长公共子串问题的方法
2017/11/17 PHP
写的htc的数据表格
2007/01/20 Javascript
学习ExtJS accordion布局
2009/10/08 Javascript
两个JavaScript jsFiddle JSBin在线调试器
2010/03/14 Javascript
详解javascript遍历方式
2015/11/11 Javascript
angular4自定义组件详解
2017/09/28 Javascript
解决vue attr取不到属性值的问题
2018/09/18 Javascript
详解无限滚动插件vue-infinite-scroll源码解析
2019/05/12 Javascript
nodeJs项目在阿里云的简单部署
2020/11/27 NodeJs
JavaScript实现10秒后再次获取验证码
2020/12/02 Javascript
[02:32]DOTA2亚洲邀请赛 C9战队出场宣传片
2015/02/07 DOTA
Python-基础-入门 简介
2014/08/09 Python
使用IPython来操作Docker容器的入门指引
2015/04/08 Python
Python使用sqlalchemy模块连接数据库操作示例
2019/03/13 Python
selenium+超级鹰实现模拟登录12306
2021/01/24 Python
瑞典最好的运动鞋专卖店:Sneakersnstuff
2016/08/29 全球购物
EVE LOM英国官网:全世界最好的洁面膏
2017/10/30 全球购物
RetroStage德国:复古服装
2019/02/03 全球购物
Geekbuying波兰:购买中国电子产品
2019/10/20 全球购物
俄罗斯女装店:12storeez
2019/10/25 全球购物
ORACLE第二个十问
2013/12/14 面试题
单位领导证婚词
2014/01/14 职场文书
美发店5.1活动方案
2014/01/24 职场文书
2014新课程改革心得体会
2014/03/10 职场文书
《窗前的气球》教学反思
2014/04/07 职场文书
四查四看自我剖析材料
2014/09/19 职场文书
2014年民政局关于保密工作整改措施
2014/09/19 职场文书
社会实践活动报告
2015/02/05 职场文书
2015年调度员工作总结
2015/04/30 职场文书
pdf论文中python画的图Type 3 fonts字体不兼容的解决方案
2021/04/24 Python
Python pandas之求和运算和非空值个数统计
2021/08/07 Python