我想知道,如果有办法在javascript中截取任何DOM-Element的截图并将截屏图像保存到文件中。 (例如用于测试目的......;是的,我知道我可以使用Selendroid,QF-Test,Sikuli,Sandstorm和其他很多,但我想知道如何在纯javascript中完成它)
我知道,我可以从canvas元素中截取屏幕截图: <canvas /> and print screen/screenshot 甚至可以获取该网站的完整屏幕截图: Take screenshot of the whole webpage (并且基于此,应该可以仅为单个/多个组件截取屏幕截图)
但是,有没有人知道如何使用HTML5中的文件api(到用户可以选择的位置)保存这样的元素?
答案 0 :(得分:1)
Javascript无法访问浏览器呈现引擎中像素级别的内容。
我认为你的唯一镜头就是像HTML 2 Canvas这样的工具,它在纯javascript中实现了一个完整的浏览器渲染引擎。然后,您可以将图像保存在画布元素中。
HTML 2 Canvas
此脚本允许您直接在用户浏览器上截取网页或部分网页的“屏幕截图”。屏幕截图基于DOM,因此它可能不是真实表示的100%准确,因为它不会制作实际的屏幕截图,而是根据页面上可用的信息构建屏幕截图。
(注意它所说的部分可能不是100%准确,渲染网页非常复杂)
事实上,您链接到的答案仅与此相关,因为它链接到一篇文章,该文章提到HTML 2 Canvas就是为了这个目的,将屏幕截图流式传输为屏幕分享。