How to save a canvas as PNG in Selenium? How to save a canvas as PNG in Selenium? selenium selenium

How to save a canvas as PNG in Selenium?


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

import base64from selenium import webdriverdriver = 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 stringcanvas_base64 = driver.execute_script("return arguments[0].toDataURL('image/png').substring(21);", canvas)# decodecanvas_png = base64.b64decode(canvas_base64)# save to a filewith open(r"canvas.png", 'wb') as f:    f.write(canvas_png)