UI自动化测试必备,Selenium截图方法全解析!

前言

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

UI自动化测试必备,Selenium截图方法全解析!_第1张图片

方法一

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

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

#coding:utf-8

from selenium import webdriver

import base64

driver=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-8

from selenium import webdriver

driver=webdriver.Chrome()

driver.get('https://www.baidu.com/')

#保存图片到本地

driver.save_screenshot('1.png')

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

方法三

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

#coding:utf-8

from selenium import webdriver

driver=webdriver.Chrome()

driver.get('https://www.baidu.com/')

#截图保存在本地

driver.get_screenshot_as_file('1.png')

方法四

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

#coding:utf-8

from selenium import webdriver

driver=webdriver.Chrome()

driver.get('https://www.baidu.com/')

#截图保存在本地

x=driver.get_screenshot_as_png()

#将二进制保存成图片形式

file=open('1.png',"wb")

file.write(x)

截图长图

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

#coding:utf-8

from selenium import webdriver

import time

opt=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')

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

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

UI自动化测试必备,Selenium截图方法全解析!_第2张图片

总结

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

最后:

可以到我的个人号:atstudy-js,可以免费领取一份10G软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!其中包括了有基础知识、Linux必备、Mysql数据库、抓包工具、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试持续集成、测试架构开发测试框架、性能测试等。

这些测试资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

你可能感兴趣的:(压力测试,单元测试,软件测试,运维,职场和发展,selenium,自动化测试)