Selenium + Python 自动化测试08(截图)

        我们的目标是:按照这一套资料学习下来,大家可以独立完成自动化测试的任务。

上一篇我们讨论了滑块的操作方法,本篇文章我们讲述一下截图的操作方法。希望能够帮到爱学的小伙伴。

         在实际的测试项目组中我们经常要截屏保存报错信息,以便后续人工确认是否是真的bug。和对应的日志相对应。有时登录或者注册有图片上的验证码需要验证,也需要截图验证码,然后分析识别图片上的文字。

1、截屏的方法

页面截屏比较简单,可以使用selenium自带的方法:save_screenshot

下面以免费Swag Labs的网址(https://www.saucedemo.com/)为例进行说明:

练习代码如下:

#打开浏览器,并最大化driver.get("https://www.saucedemo.com/")   #打开练手的网站driver.maximize_window()time.sleep(3)now = time.strftime("%Y-%m-%d %H_%M_%S")pictures=now+".png"driver.save_screenshot(pictures)

运行脚本以后可以看到产生对应的图片,在这个项目的文件夹下。

图片为了不重复命名,这里用了日期+时间的方法。

2、元素的截图

验证码如果要用图像识别的方式去处理的话,需要先对验证码元素进行截图。

如下例子:

前面是上一节滑块的内容,黄色是这次新增:

driver.get("https://passport.ctrip.com/user/reg/home")driver.maximize_window()time.sleep(3)# 点击同意并继续driver.find_element_by_xpath("//*[@id='agr_pop']/div[3]/a[2]").click()# 滑块的元素slider = driver.find_element_by_css_selector("#slideCode > div.cpt-drop-box > div.cpt-drop-btn")print(slider.size['width'])print(slider.size['height'])# 滑块区域的元素slide_range = driver.find_element_by_css_selector("#slideCode > div.cpt-drop-box > div.cpt-bg-bar")print(slide_range.size['width'])print(slide_range.size['height'])# 拖动滑块ActionChains(driver).drag_and_drop_by_offset(slider, slide_range.size['width'], -slider.size['height']).perform()print("滑动成功")time.sleep(3)now = time.strftime("%Y-%m-%d %H_%M_%S")pictures = now + ".png"
driver.save_screenshot(pictures)# 元素的位置captcha_image = driver.find_element_by_class_name("cpt-small-img")# 获取元素的位置和大小left = captcha_image.location['x']top = captcha_image.location['y']right = left +captcha_image.size["width"]bottom =top+captcha_image.size["width"]# 截取屏幕截图im = Image.open(pictures)im = im.crop((left,top,right,bottom))im.save("captcha.png")

运行脚本查看文件夹下有对应的截图:        

好了,今天就分享到这里。

每天进步一点点,加油!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/395238.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python的安装环境以及应用

1.环境python2,Python 最新安装3.12可以使用源码安装 查看安装包 [rootpython001 ~]# yum list installed | grep epel 3[rootpython001 ~]# yum list installed | grep python [rootpython001 ~]# yum -y install python3 安装python3 查看版本 [root…

B站监控2.0架构落地实践

背景 众所周知,Metrics指标数据是可观测重要的基石之一,在2021年底的时候,B站基于PromtheusThanos 方案,完成了统一监控平台的落地。但随着B站业务迅猛发展,指标数据级也迎来了爆炸式增长,不仅给现有监控系…

【51单片机仿真】基于51单片机设计的温度检测与高低温报警系统仿真源码设计文档演示视频——文末资料下载

基于51单片机设计的温度检测与高低温报警系统仿真设计 演示视频 基于51单片机设计的温度检测与高低温报警系统仿真 系统功能简介 1、实时温度测量,可调整温度值 2、显示测量的温度值,按键切换可查看高温和低温报警值 3、可通过按键输入报警最高值以及最…

解决客户访问超时1s问题

访问公网地址返回状态码499-CSDN博客 需求描述 客户访问公司公网服务,期望在1s内完成。他们在客户端设置了超时1s的配置,如果超过1s公司服务就会报错499,这是正常的请求返回。 分析问题 目前这个服务通过公网的alb负载均衡到ecs&#xff0…

Android 自定义View(一):View是什么?如何创建自定义view,自定义属性等

目录 1)View是什么? 2)View分类 3)View的知识点 4)View的工作流程是怎么样的? 5)案例:如何自定义View?比如我们要实现一个输入框带有清除按钮的view 6)疑问&…

【GaussDB(DWS)】数仓部署架构与物理结构分析

数仓架构与物理结构分析 一、部署架构二、物理结构三、测试验证 一、部署架构 华为数据仓库服务DWS,集群版本8.1.3.x 集群拓扑结构: 上述拓扑结构为DWS单AZ高可靠部署架构,为减少硬件故障对系统可用性的影响,建议集群部署方案遵…

计算机网络408考研 2018

1 计算机网络408考研2018年真题解析_哔哩哔哩_bilibili

RabbitMq如何确保消息不丢失

问题:在生产环境中由于一些不明原因,导致 rabbitmq 重启,在 RabbitMQ 重启期间生产者消息投递失败,导致消息丢失,需要手动处理和恢复。于是,我们开始思考,如何才能进行 RabbitMQ 的消息可靠投递…

【SQL】产品销售分析 I

目录 题目 分析 代码 题目 销售表 Sales: -------------------- | Column Name | Type | -------------------- | sale_id | int | | product_id | int | | year | int | | quantity | int | | price | int | ---------------…

基于Hadoop的超市进货推荐系统设计与实现【springboot案例项目】

文章目录 有需要本项目的代码或文档以及全部资源,或者部署调试可以私信博主项目介绍系统分析系统设计数据表设计表4-1:关于我们表4-2:用户表4-3:管理员表表4-4:token表表4-5:系统简介表4-6:收藏…

Typro + PicGo 图床 + Docsify + GitHub Pages,玩转个人知识库搭建,写给小白的建站入门课

自动开了这个号以后,陆陆续续写了很多干货文章,一方面是可以帮助自己梳理思路,另一方面也方便日后查找相关内容。 但是,我想检索某个关键词是在之前哪篇文章写过的,就有点捉急了。CSDN 还好,可以检索到相关…

【实现100个unity特效之19】使用ShaderGraph实现Unity 2D水

最终效果 文章目录 最终效果前言开始新增无光照影响的shaderGraph半透明效果,并且有一些颜色的变化其他办法参考完结 前言 先粗略记录一下,后面再补充 开始 我们新建一个render texture 设置尺寸 然后我要创建另外一个摄像机,将他的画面…

el-tree自定义节点内容

<el-tree :data"data" :props"defaultProps" ref"treeRef" show-checkbox check-change"handleCheckChange"><!-- 自定义节点内容 --><template #default"{ node, data, store }"><span class"tr…

想实现ubuntu搭建sqli-labs靶场

目录 首先前期的nginx和php部署完成​编辑​编辑 Xftp导入sqli-labs 遇到了的问题 它提示我们请检查db-creds.inc 去尝试解决这个问题 尝试修改MySQL root密码 修改db-creds.inc配置 再次尝试依旧失败 思考&#xff1a;会不会是MySQL版本过高的原因 重新下载MySQL5.7.…

突破 ES 引擎局限性在用户体验场景中的优化实践

回顾&#xff1a;ES 慢上游响应问题优化在用户体验场景中的实践-CSDN博客 上文介绍了用户体验管理平台&#xff08;简称 VoC&#xff09;在针对 ES 慢上游响应场景下的优化实践&#xff0c;本文继续介绍针对第二个痛点问题——ES 引擎局限性的性能优化实践进行介绍。 下文以搜…

SSM美美电影院选座订票微信小程序-计算机毕业设计源码15838

美美电影院选座订票微信小程序 摘 要 美美电影院选座订票微信小程序是一个集在线选座和购票于一体的平台&#xff0c;旨在为用户提供便捷的观影体验。该小程序以其实时更新的座位图和多样化的支付方式而受到用户的喜爱。 首先&#xff0c;美美电影院选座订票微信小程序提供了直…

使用CLIP模型进行零样本图像分类的分步指南

零样本学习允许AI系统对未明确训练过的类别进行图像分类,标志着计算机视觉和机器学习的重大进步。本文将介绍使用CLIP实现零样本图像分类的详细分步指南,从环境设置到最终的图像处理和分类。我们首先介绍零样本学习的概念及其在现代AI应用中的重要性。然后深入探讨CLIP模型的概…

PostgreSQL的学习心得和知识总结(一百五十)|[performance]更好地处理冗余 IS [NOT] NULL 限定符

目录结构 注&#xff1a;提前言明 本文借鉴了以下博主、书籍或网站的内容&#xff0c;其列表如下&#xff1a; 1、参考书籍&#xff1a;《PostgreSQL数据库内核分析》 2、参考书籍&#xff1a;《数据库事务处理的艺术&#xff1a;事务管理与并发控制》 3、PostgreSQL数据库仓库…

低代码之殇

低代码的浪潮已经持续几年了&#xff0c;很多声音冒出来&#xff0c;其中最刺耳就是&#xff1a;低代码就是个伪命题&#xff0c;根本不可能用低代码开发业务系统&#xff0c;尤其是复杂的业务系统&#xff1b; 更有甚者&#xff0c;直接给给低代码贴了标签&#xff1a;骗子 …

linux常见性能监控工具

常用命令top、free 、vmsata、iostat 、sar命令 具体更详细命令可以查看手册&#xff0c;这里只是简述方便找工具 整体性能top,内存看free&#xff0c;磁盘cpu内存历史数据可以vmsata、iostat 、sar、iotop top命令 交互&#xff1a;按P按照CPU排序&#xff0c;按M按照内存…