Python+selenium实现截图图片并保存截取的图片

 更新时间:2018年01月05日 10:21:59   作者:木棉花的漂泊  
这篇文章介绍如何利用Selenium的方法进行截图并保存截取的图片,需要的朋友参考下本文

这篇文章介绍如何利用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实现截图图片并保存截取的图片,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • 浅谈python3 构造函数和析构函数

    浅谈python3 构造函数和析构函数

    这篇文章主要介绍了浅谈python3 构造函数和析构函数,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • pip安装py_zipkin时提示的SSL问题对应

    pip安装py_zipkin时提示的SSL问题对应

    今天小编就为大家分享一篇关于pip安装py_zipkin时提示的SSL问题对应,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • 基于OpenCV的路面质量检测的实现

    基于OpenCV的路面质量检测的实现

    这篇文章主要介绍了基于OpenCV的路面质量检测,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • Python中的请求重试策略深入探讨

    Python中的请求重试策略深入探讨

    在网络通信中,由于各种原因,请求可能会失败,为了增加程序的健壮性和可靠性,实现一个优雅的请求重试策略是至关重要的,本文将深入探讨如何在Python中实现优雅的请求重试,通过丰富的示例代码和详细的解释,帮助大家更好地理解和应用重试机制
    2024-01-01
  • 浅谈selenium如何应对网页内容需要鼠标滚动加载的问题

    浅谈selenium如何应对网页内容需要鼠标滚动加载的问题

    这篇文章主要介绍了浅谈selenium如何应对网页内容需要鼠标滚动加载的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • python process模块的使用简介

    python process模块的使用简介

    在python中大部分情况需要使用多进程,python提供了multiprocessing模块。multiprocessing模块的功能众多:支持子进程、通信和共享数据、执行不同形式的同步,提供了Process、Queue、Pipe、Lock等组件。本文将着重讲解process模块的使用
    2021-05-05
  • Python实现多进程的四种方式

    Python实现多进程的四种方式

    今天小编就为大家分享一篇关于Python实现多进程的四种方式,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • 详解如何利用Numpy生成各种各样的数组

    详解如何利用Numpy生成各种各样的数组

    Numpy提供了多种函数和方法,可以方便地生成不同形状和类型的数组,今天小编就带大家学习一下如何利用 Numpy 生成各种各样的数组吧
    2023-07-07
  • Python科学计算环境推荐——Anaconda

    Python科学计算环境推荐——Anaconda

    最近在用Python做中文自然语言处理。使用的IDE是PyCharm。PyCharm确实是Python开发之首选,但用于科学计算方面,还略有欠缺。为此我尝试过Enthought Canopy,但Canopy感觉把问题搞得复杂化,管理Python扩展也不太方便。直到今天我发现了 Anaconda 。
    2014-06-06
  • 详解python中的变量

    详解python中的变量

    这篇文章主要为大家详细介绍了python的变量,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11

最新评论