如何在硒中将画布另存为 PNG
How to save a canvas as PNG in Selenium?
我正在尝试将画布元素另存为 png 图像。这是我现在的代码,但不幸的是,它不起作用:
import time
from selenium import webdriver
# From PIL import Imag.
driver = webdriver.Firefox()
driver.get('http://www.agar.io')
driver.maximize_window()
driver.find_element_by_id('freeCoins').click()
time.sleep(2)
# The part below does not seem to work properly.
driver.execute_script('function download_image(){var canvas = document.getElementByTagName("canvas");canvas.toBlob(function(blob) {saveAs(blob, "../images/output.png");}, "image/png");};')
我想在Python中看到解决方案。我还希望在屏幕截图末尾看到不需要裁剪的解决方案。
您可以调用 HTMLCanvasElement.toDataURL()
将画布作为 PNG base64 字符串获取。这是一个工作示例:
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)
相关文章:
- 无法在本地计算机中将画布另存为图像
- 如何将 html5 画布另存为窗口 8 Metro 应用程序中的图像文件
- 试图制作一个“;另存为“;使用php's”;file_put_contents”;和javascript&quo
- Safari浏览器上的“强制另存为”对话框
- 强制浏览器打开“;另存为“;对话框
- execCommand('另存为',true,'data.csv');不在IE工作
- 更改音频速度,然后另存为新文件
- 将响应另存为文件
- 覆盖 HTML 画布上的“另存为”行为
- 如何在浏览器中触发另存为对话框,以便可以在内存中保存 json 数据
- 更改“将图像另存为”的操作以重定向到相应的网页
- 如何为图像创建“另存为”按钮
- 将 JavaScript 对象另存为字符串
- 如何定义图像'另存为'大小
- 使用javascript将画布另存为图像
- 嵌套画布另存为单个图像
- 如何将画布另存为 PNG 图像
- 将Base64字符串另存为.PNG不工作
- 如何在硒中将画布另存为 PNG
- 将画布另存为 png