selenium---屏幕截图

前言

  通常在执行自动化用例的时候,是不会一直在旁边检测,报错的时候想要留下一些证据给开发,可以在代码中进行添加截图操作,通过截图把我们想要的内容截图下来。那selenium中如何操作呢?

截图

selenium截图方法有很多种,安静简单的列举几种:

方法一:

获取当前屏幕截图: get_screenshot_as_file(filename) ,filename为图片名称,需要填写完整路径。

这里需要注意图片后缀只能是png,如果是jpg或者其他格式的话,会报错,但是程序还是回正常执行。

报错内容:  UserWarning: name used for saved screenshot does not match file type. It should end with a `.png` extension "type. It should end with a `.png` extension", UserWarning) 

from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get('https://www.cnblogs.com/qican/')
time.sleep(2)
# 截图保存在本地
driver.get_screenshot_as_file('123.png')

方法二:

获取当前屏幕截图,保存格式为base64:  get_screenshot_as_base64()  ,base64保存的图片多数用来放入html报告中。

这里需要导入base64模块,使用base64模块展示图片

from selenium import webdriver
import time
import base64
driver = webdriver.Chrome()
driver.get('https://www.cnblogs.com/qican/')
time.sleep(2)
# 通过base64进行保存图片
x = driver.get_screenshot_as_base64()
image = base64.b64decode(x)
file = open('1.jpg',"wb")
file.write(image)

方法三:

获取当前窗口屏幕截图的截图。  save_screenshot(filename)  ,filename:表示图片名称。

from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get('https://www.cnblogs.com/qican/')
time.sleep(2)
# 截图保存在本地
driver.save_screenshot('123.png')

方法四:

以二进制的方式进行获取当前屏幕截图: get_screenshot_as_png()  

这里在通过打开二进制图片的方法进行保存在本地

from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get('https://www.cnblogs.com/qican/')
time.sleep(2)
# 通过二进制的方法进行保存图片到本地
x = driver.get_screenshot_as_png()
file = open('12.png',"wb")
file.write(x)

这里安静就不把截图成功结果发出来了,大家可以手动试试

异常捕捉

通常错误截图大多数用在用例执行失败的时候,安静通过百度输入框填写错误的元素进行定位,然后通过异常捕捉进行截取图片内容。

from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')
try:
    # 定位元素错误
    driver.find_element_by_id('anjing').send_keys('测试-安静')
except Exception as msg:
    # 时间戳名称,防止覆盖
    name = time.strftime("%H.%M.%S")
    # 异常截图保存在本地
    driver.get_screenshot_as_file('%s.png'%name)

这里我们可以查看发现图片已经截取下来了,安静这里没有打印错误信息。

安静通过小小的例子介绍了web自动化中的截图功能,小伙伴们可以自己动手写一写。孰能生巧。

原文地址:https://www.cnblogs.com/qican/p/13680437.html