Python+selenium实现截图图片并保存截取的图片
作者:木棉花的漂泊 发布时间:2023-06-03 10:15:59
标签:python,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实现截图图片并保存截取的图片网站的支持!
来源:https://www.cnblogs.com/fengyiru6369/p/7234840.html


猜你喜欢
- 介绍众所周知,计算机视觉在机器学习和人工智能领域获得了巨大的普及。图像识别技术允许计算机处理比人眼更多的信息,通常更快、更准确,或者只是在人
- 键盘事件废话不多说直接上包from selenium.webdriver.common.keys import Keys1、删除键 BACK
- 前言本系统是基于fabric.js实现的canvas版图片,文本编辑器,支持对图片的放大,缩小,旋转,镜面翻转,拖动,显示/隐藏图层,删除图
- 1. 下载RPM安装包, 因为安装MySQL的时候,软件会需要一依赖关系, 所以建议把所有的安装包下载下载, 再依次安装所以的RPM包。 2
- 单线程执行python的内置模块提供了两个内置模块:thread和threading,thread是源生模块,threading是扩展模块,
- 一、需求来源:如果用户在文本框中填了一段<script>alert(xxx);</script>代码,然后我们还保存
- 一、原因:今天在尝试初始化一个WEB应用的时候,发现其连接不上MySQL,从Traceback看到使用的默认密码为‘YES’。没辙,居然尝试
- 关于代理模式、装饰模式设计模式中经常提到的代理模式、装饰模式,这两种叫法实际上是说的同一件事,只是侧重点有所不同而已。这两者都是通过在原有对
- select * from (select t.*, row_number() over(order by 列 desc) r from 表
- 在Python中是没有Switch / Case语句的,很多人认为这种语句不够优雅灵活,在Python中用字典来处理多条件匹配问题字典会更简
- 技术背景lambda表达式本身是一个非常基础的python函数语法,其基本功能跟使用def所定义的python函数是一样的,只是lambda
- 本文实例为大家分享了python实现多人聊天室的具体代码,供大家参考,具体内容如下刚开始学习python,写了一个聊天室练练手。Server
- 一、使用MySql进行持久化存储在任何应用中,都需要持久化存储。一般有 3 种基础的存储机制:文件、数据库系统以及一些混合类型。这种混合类型
- 使用python3+opencv3.3.1环境将视频流保存为本地视频文件,具体内容如下1、利用opencv中的VideoCapture类获取
- write2vin 的 PPT原文路宛兮写的简介:本文解释了以下问题: 1.什么是用户体验? 2.谁发明了这个术语?他想表达什么意思? 3.
- 在数据生产应用部门,取数分析是一个很常见的需求,实际上业务人员需求时刻变化,最高效的方式是让业务部门自己来取,减少不必要的重复劳动,一般情况
- 一.IO流的操作(1).什么是IO流(Input Output Stream)?IO流说的主要是计算机的输入和输出操作。常见的IO操作,一般
- 原型扩展:>> String.prototype :String对象原型扩展 --------------
- Bootstrap是现在最流行的CSS框架,有许多网站、后台管理系统的样式都是基于Bootstrap设计的。然而,Bootstrap 始终保
- 本文要实现的功能是:根据下拉列表的选项将数据库中对应的内容显示在页面,选定要排除的选项后,提交剩余的选项到数据库。为了方便前后台交互,利用了