我在VPS的Xvfb上运行火狐。我想做的是对页面进行全页截图。
我可以使用以下方法将Firefox重定向到特定页面
firefox http://google.com
并使用ImageMagick进行屏幕截图(在X内部)
import root -window output.jpg
问题是,大部分页面需要滚动,我无法事先知道高度。
另一种方法是挑一个非常大的高度(像4000px)然后对图像进行处理,去掉无用的部分。但那是不必要的处理。
我发现了许多Firefox插件,但我正在寻找一个可以使用Shell命令行编程的解决方案。
编辑:我最终编写了自己的FireFox扩展来完成此操作。
Firefox版本60中删除了开发人员工具栏GCLI和Shift+F2快捷方式。以60或更高版本截图:
:screenshot
或:screenshot--fullpage
了解有关截图和其他功能的更多信息
对于Firefox版本<60:
按Shift+F2或转到“工具”>Web Developer>开发人员工具栏打开命令行。写:
screenshot
然后按Enter键拍摄屏幕截图。
要完全回答问题,您甚至可以保存整个页面,而不仅仅是其中可见的部分:
screenshot --fullpage
要将屏幕截图复制到剪贴板,请使用--clipboard
选项:
screenshot --clipboard --fullpage
Firefox18改变了将参数传递给命令的方式,您必须在它们之前添加“--”。
您可以在这里找到一些文档和完整的命令列表。
PS。默认情况下,屏幕截图保存到下载目录中。
更新2018-07-23
正如刚才在评论中指出的,这个问题是关于从命令行获取屏幕截图的。抱歉,我刚读了一遍。所以这里是正确答案:
从Firefox57开始,您可以在无头模式下创建一个屏幕截图,如下所示:
firefox -screenshot https://developer.mozilla.com
请参阅文档中的更多内容。
更新2017-06-15
对于Firefox55,有Firefox屏幕截图作为一个更灵活的替代方案。从Firefox57开始,截图也可以捕获整个页面。
原始答案
由于Firefox32,在开发者工具(F12)中也有一个整页屏幕截图按钮。如果未启用,请转到developer tools settings(gear按钮),并在“可用工具箱按钮”部分选择“Take a fullpage screenshot”。
默认情况下,屏幕截图保存在下载目录中。这与工具栏中的screenshot-fullpage
类似。