简单但好用:4种Selenium截图方法

前言

我们执行UI自动化操作时,大多数时间都是不在现场的,出现错误时,没有办法第一时间查看到,这时我们可以通过截图当时出错的场景保存下来,后面进行查看报错的原因,Selenium中提供了几种截图的方法,小编今天给大家介绍下。

方法一

get_screenshot_as_base64()整个函数,获取当前屏幕页面截图。

我们通过代码编写打开百度页面,然后进行进行通过base64进行截图,截图后再次进行转换成图片保存下来。

复制代码
# coding:utf-8from selenium import webdriverimport base64driver = webdriver.Chrome()driver.get('https://www.baidu.com/')# 通过base64进行保存图片x = driver.get_screenshot_as_base64()image = base64.b64decode(x)file = open('1.jpg', "wb")file.write(image)

程序执行完成后,我们直接可以看到图片成功保存在本地。

方法二

save_screenshot(filename)是属于Selenium自带的截图函数,其中filename表示图片名称,道理一样,直接打开百度网页进行保存。

复制代码
# coding:utf-8from selenium import webdriverdriver = webdriver.Chrome()driver.get('https://www.baidu.com/')# 保存图片到本地driver.save_screenshot('1.png')

代码执行完成后,发现图片信息已经保存下来了。

方法三

get_screenshot_as_file(filename)获取截图信息,其中filename表示图片名称,这里需要注意的是,图片信息只能保存为png格式的,其他的格式,代码会出现报错。​​​​​​​

复制代码
# coding:utf-8from selenium import webdriverdriver = webdriver.Chrome()driver.get('https://www.baidu.com/')# 截图保存在本地driver.get_screenshot_as_file('1.png')

方法四

get_screenshot_as_png() 通过二进制的方式进行保存图片。​​​​​​​

复制代码
# coding:utf-8from selenium import webdriverdriver = webdriver.Chrome()driver.get('https://www.baidu.com/')# 截图保存在本地x = driver.get_screenshot_as_png()# 将二进制保存成图片形式file = open('1.png', "wb")file.write(x)

截图长图​​​​​​​

上述截图方法中均是截取的当前页面的图片,那么如果我想要整个浏览器显示的内容全部截图下来怎么操作呢?其实方法一样的,我们只需要获取到浏览器的高度,然后就可以将截图全部都截取下来了。​​​​​​​

复制代码
# coding:utf-8from selenium import webdriverimport timeopt = webdriver.ChromeOptions()opt.headless = True              # 把Chrome设置成可视化无界面模式driver = webdriver.Chrome(options=opt)  # 创建Chrome无界面对象driver.get('http://www.51testing.com/html/news.html')time.sleep(2)# js获取页面的宽高height = driver.execute_script("return document.documentElement.scrollHeight")# 将浏览器的宽高设置成刚刚获取的宽高driver.set_window_size(1960, height)time.sleep(3)driver.save_screenshot('22.png')

可以到我的个人号:atstudy-js

☑️这里有10W+ 热情踊跃的测试小伙伴们

☑️一起交流行业热点、测试技术各种干货

☑️一起共享面试经验、跳槽求职各种好用的

即可加入领取 ⬇️⬇️⬇️

转行、入门、提升、需要的各种干货资料

内含AI测试、 车载测试、自动化测试、银行、金融、游戏、AIGC...

需要注意的一点是,这里需要将浏览器设置成无页面模式,因为只有无页面形式才可以截全图,不然截的还是当前页面的图片,也就是浏览器的页面显示的。

执行完成代码后,发现我们已经将长图全部截取下来了。

总结

本篇的内容可能对于一些小伙们来说很简单,其实小编主要想介绍如何通过Selenium进行截取长图或者说整个页面的图片,当然如何在公司项目中进行使用,这个可能就需要小伙们根据公司项目进行合理安排,是否有此需求,感谢您的阅读,希望对您有所帮助。

相关推荐
2501_924064111 天前
2025年接口错误自动分析工具对比与性能测试平台选型指南
测试工具·性能优化·数据可视化
测试人社区-千羽1 天前
AR/VR应用测试核心要点与实施策略
人工智能·安全·职场和发展·自动驾驶·测试用例·ar·vr
百度测试开发1 天前
超细整理,性能测试如何做?怎么做?常见面试题(汇总五)
自动化测试·软件测试·软件测试工程师·接口测试·软件测试项目·软件测试面试·性能测试
UTP协同自动化测试1 天前
UTP测试系统为家电及智能家居产品打造高效、合规、体验至上的验证体系
功能测试·物联网·测试工具·视觉检测·压力测试·模块测试·测试覆盖率
慧都小项1 天前
JAVA自动化测试平台Parasoft Jtest 插件Eclipse/IDEA安装教程
java·软件测试·测试工具·eclipse·intellij-idea
少云清1 天前
【接口测试】1_Postman _Postman环境搭建
测试工具·postman
程序员杰哥1 天前
如何使用Postman做接口自动化测试?
自动化测试·软件测试·python·测试工具·测试用例·接口测试·postman
天才测试猿1 天前
Jmeter 命令行压测&生成HTML测试报告
自动化测试·软件测试·python·测试工具·jmeter·职场和发展·jenkins
啊巴矲1 天前
小白从零开始勇闯人工智能:爬虫初级篇(Selenium库)
爬虫·selenium·测试工具
少云清1 天前
【接口测试】2_Postman _Postman基础使用
测试工具·postman