简单但好用: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进行截取长图或者说整个页面的图片,当然如何在公司项目中进行使用,这个可能就需要小伙们根据公司项目进行合理安排,是否有此需求,感谢您的阅读,希望对您有所帮助。

相关推荐
测试那点事儿11 小时前
测试用例设计方法与理论基
测试用例
软件测试雪儿1 天前
【面经】2026年软件测试面试题大全(附答案)
软件测试·面试
老神在在0011 天前
JSON Schema
测试工具·json
rs勿忘初心1 天前
软件测试人员如何理解 Harness(驾驭工程)?
软件测试·ai agent·harness·驾驭工程·测试工程
twc8291 天前
从架构视角梳理全链路压测的核心业务链路
java·大数据·软件测试·架构·性能测试·全链路压测
小杍随笔1 天前
【FlyEnv v4.15.0 重磅更新!新增 FrankenPHP、CliProxyAPI、Numa、Rnacos 模块,开发效率再升级】
测试工具·开发环境管理工具
软件测试慧姐1 天前
软件测试常见面试题汇总(2026版)
软件测试·测试工具·面试
weixin_419658312 天前
基于 Trae 和 Postman-MCP-Server 接口自动化测试
测试工具·postman
弹简特2 天前
【精通Postman接口测试】04-Postman的CLI命令+Jenkins和Newman+Allure+Jenkins自动化接口持续集成
自动化·jenkins·接口测试·postman
weixin_419658313 天前
Postman-MCP-Server 的构建以及在 Trae 中的配置方法
测试工具·postman