在命令行上使用Firefox获取整页屏幕截图

Oma*_*bid 220 shell firefox command-line screenshot

我在VPS中的Xvfb上运行Firefox.我想要做的是采取页面的整页截图.

我可以使用Firefox将Firefox重定向到特定页面

firefox http://google.com
Run Code Online (Sandbox Code Playgroud)

并使用ImageMagick截取屏幕截图(在X内)

import root -window output.jpg
Run Code Online (Sandbox Code Playgroud)

问题是,大多数页面需要滚动,我不能事先知道高度.

另一种方法是选择一个非常大的高度(如4000px),然后处理图像并删除无用的部分.但这是不必要的处理.

我发现了许多Firefox附加组件,但我正在寻找可以使用Shell命令行编程的解决方案.

编辑:我最终编写了自己的FireFox扩展程序来执行此操作.

enr*_*eas 476

开发工具栏图形化命令行和Shift+ F2快捷方式在Firefox 60版本被拆除.截取60或更新的屏幕截图:

  • Ctrl+ Shift+ K打开开发人员控制台.
  • 类型:screenshot:screenshot --fullpage

了解有关屏幕截图和其他功能的更多信息


对于Firefox版本<60:

Shift+F2或转到工具> Web开发人员>开发人员工具栏以打开命令行.写:

screenshot
Run Code Online (Sandbox Code Playgroud)

并按Enter键以截取屏幕截图.

要完全回答这个问题,您甚至可以保存整个页面,而不仅仅是它的可见部分:

screenshot --fullpage
Run Code Online (Sandbox Code Playgroud)

要将屏幕截图复制到剪贴板,请使用--clipboard选项:

screenshot --clipboard --fullpage
Run Code Online (Sandbox Code Playgroud)

Firefox 18更改了参数传递给命令的方式,您必须在它们之前添加" - ".

您可以在此处找到一些文档和完整的命令列表.

PS.屏幕截图默认保存到下载目录中.

  • 仅供参考,您还可以通过检查器选择DOM注释,然后"右键单击" - >"屏幕截图节点".当您想要截取页面的某个部分时,这非常有用. (5认同)
  • 整页截图到剪贴板 - `screenshot --clipboard --fullpage`特定节点的屏幕截图(由Id) - `screenshot --clipboard --selector#elementId` (5认同)
  • 如果您想直接将屏幕截图复制到剪贴板,请使用screenshot --clipboard --fullpage (4认同)
  • 该命令在 javascript 控制台中不起作用,所以是否有指向有关此工具栏的更多信息的链接?它还能做什么? (2认同)
  • 我不得不使用`:screenshot --clipboard --fullpage`(注意冒号) (2认同)

Mou*_*gip 133

更新2018-07-23

正如在评论中刚刚指出的那样,这个问题是关于从命令行获取屏幕截图.对不起,我刚看完了.所以这是正确的答案:

从Firefox 57开始,您可以在无头模式下创建截图,如下所示:

firefox -screenshot https://developer.mozilla.com
Run Code Online (Sandbox Code Playgroud)

阅读文档中的更多内容.

更新2017-06-15

从Firefox 55开始,Firefox截图作为一种更灵活的选择.从Firefox 57开始,屏幕截图也可以捕获整页.

原始答案

从Firefox 32开始,开发人员工具(F12)中也有一个完整的页面截图按钮.如果未启用,请转到开发人员工具设置(齿轮按钮),然后在"可用工具箱按钮"部分选择"获取完整页面截图".

开发者工具栏 来源:developer.mozilla.org

默认情况下,屏幕截图保存在下载目录中.这与screenshot --fullpage工具栏中的工作方式类似.

  • 对于在F12上打开Firebug的用户,可以使用Ctrl + Shift + K或Ctrl + Shift + I来使用开发人员工具.只是......万一......以前从未使用过它们. (7认同)

Oma*_*bid 9

我最终编写了一个自定义解决方案(Firefox扩展)来执行此操作.我认为,当我开发它时,enreas中提到的命令行不存在.

Firefox扩展名是CmdShots.如果您需要对截屏过程进行更精细的控制(或者您想要进行一些HTML/JS修改和图像处理),这是一个很好的选择.

你可以使用它并滥用它.我决定保留它未经许可,所以你可以随心所欲地玩它.

  • 嗯,这不是"未经许可"的意思:它实际上意味着你没有给予任何使用许可,这显然不是真的,因为在那句话中你也说你可以使用,滥用和玩它就像你一样想.也许你想要像[CC0](http://creativecommons.org/publicdomain/zero/1.0/legalcode)这样的东西? (20认同)
  • 请大家,不要使用自定义许可证。我知道人们试图通过编写自己的许可证来避免法律上的胡扯,但最终却相反,这导致人们在试图弄清楚定制许可证的实际含义时会产生法律上的头痛。见choicealicense.com (2认同)

Neh*_*ani 8

我认为您正在寻找的是一个实用程序,它允许您将浏览器中打开的完整页面保存到png文件中.很可能你正在寻找像commandlineprint2这样的实用程序.

安装扩展后,您只需键入命令:

firefox -print http://google.com -printfile ~/foo.png
Run Code Online (Sandbox Code Playgroud)