• 简单但好用:4种Selenium截图方法了解一下!


    前言

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

    方法一

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

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

    1. # coding:utf-8
    2. from selenium import webdriver
    3. import base64
    4. driver = webdriver.Chrome()
    5. driver.get('https://www.baidu.com/')
    6. # 通过base64进行保存图片
    7. x = driver.get_screenshot_as_base64()
    8. image = base64.b64decode(x)
    9. file = open('1.jpg', "wb")
    10. file.write(image)

    (左右滑动查看完整代码)

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

    方法二

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

    1. # coding:utf-8
    2. from selenium import webdriver
    3. driver = webdriver.Chrome()
    4. driver.get('https://www.baidu.com/')
    5. # 保存图片到本地
    6. driver.save_screenshot('1.png')

    (左右滑动查看完整代码)

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

    方法三

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

    1. # coding:utf-8
    2. from selenium import webdriver
    3. driver = webdriver.Chrome()
    4. driver.get('https://www.baidu.com/')
    5. # 截图保存在本地
    6. driver.get_screenshot_as_file('1.png')

    (左右滑动查看完整代码)

    方法四

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

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

    (左右滑动查看完整代码)

    截图长图

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

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

    (左右滑动查看完整代码)

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

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

    总结

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

    今天的分享就到此结束了,大家还有什么不懂的可以评论区下留言哈,如果我的文章对你有所帮助的话,可以点赞三联支持一下

  • 相关阅读:
    【低代码】为客户设计个性化方案:列表篇(客户自己调整排序对齐等)
    重编译 microsip 和 pjsip 支持 mp3 录音
    现货伦敦金分析中几种常见的资金管理技巧
    基于PHP实现微信客服欢迎语发送
    java计算机毕业设计-旅游产品销售管理-演示录像2020源码+数据库+系统+lw文档+mybatis+运行部署
    USB描述符(附加USB HID报告描述符 )
    机器学习中的 K-均值聚类算法及其优缺点。
    基于Go语言GoFrame+Vue+ElementUI项目后台管理系统
    南开大学计算机考研资料汇总
    Python+”高光谱遥感数据处理与机器学习深度应用丨高光谱数据预处理-机器学习-深度学习-图像分类-参数回归
  • 原文地址:https://blog.csdn.net/qq_43371695/article/details/133307880