且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何在Selenium中将画布保存为PNG?

更新时间:2021-12-09 21:28:38

你可以打电话给 HTMLCanvasElement.toDataURL()将画布作为PNG base64字符串。这是一个工作示例:

You could call HTMLCanvasElement.toDataURL() to get the canvas as PNG base64 string. Here is a working example:

import base64
from selenium import webdriver

driver = webdriver.Chrome()
driver.get("http://curran.github.io/HTML5Examples/canvas/smileyFace.html")

canvas = driver.find_element_by_css_selector("#canvas")

# get the canvas as a PNG base64 string
canvas_base64 = driver.execute_script("return arguments[0].toDataURL('image/png').substring(21);", canvas)

# decode
canvas_png = base64.b64decode(canvas_base64)

# save to a file
with open(r"canvas.png", 'wb') as f:
    f.write(canvas_png)