当前位置: 首页 > 知识库问答 >
问题:

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

周阳成
2023-03-14

我在VPS的Xvfb上运行火狐。我想做的是对页面进行全页截图。

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

firefox http://google.com

并使用ImageMagick进行屏幕截图(在X内部)

import root -window output.jpg

问题是,大部分页面需要滚动,我无法事先知道高度。

另一种方法是挑一个非常大的高度(像4000px)然后对图像进行处理,去掉无用的部分。但那是不必要的处理。

我发现了许多Firefox插件,但我正在寻找一个可以使用Shell命令行编程的解决方案。

编辑:我最终编写了自己的FireFox扩展来完成此操作。

共有2个答案

邹斌
2023-03-14

更新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类似。

丌官嘉良
2023-03-14

Firefox版本60中删除了开发人员工具栏GCLI和Shift+F2快捷方式。以60或更高版本截图:

  • Ctrl+Shift+K打开开发人员控制台(选项+命令+K在macOS上)
  • 键入:screenshot:screenshot--fullpage

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

对于Firefox版本<60:

Shift+F2或转到“工具”>Web Developer>开发人员工具栏打开命令行。写:

screenshot

然后按Enter键拍摄屏幕截图。

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

screenshot --fullpage

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

screenshot --clipboard --fullpage

Firefox18改变了将参数传递给命令的方式,您必须在它们之前添加“--”。

您可以在这里找到一些文档和完整的命令列表。

PS。默认情况下,屏幕截图保存到下载目录中。

 类似资料:
  • 这篇帖子和这篇有关: Python selenium屏幕捕获未获取整个页面 但这似乎不是一个通用的解决方案,它要复杂得多。)

  • 问题内容: 在Linux上创建网站截图的命令行工具是什么?我需要自动生成网站的屏幕截图,而无需人工干预。我发现的唯一工具是khtml2png,但是我想知道是否还有其他不基于khtml的工具(即具有良好的JavaScript支持…)。 问题答案: 多一点细节可能会有用… 在控制台上或使用vncserver在X会话中启动Firefox(或其他浏览器)。您可以使用和选项将窗口的大小设置为全屏。另一个fi

  • 我正试图使用selenium和chromedriver进行全页截图,但我得到的是这一半截图。我尝试过其他方法,但到目前为止,只有这一个工作,它只需要半页截图。 任何人都可以用另一个技巧来修复这个问题,也可以附加输出结果。

  • 问题内容: 是否可以使用JavaScript截取网页的屏幕截图,然后将其提交回服务器? 我不太担心浏览器的安全性问题。等,因为实施将针对HTA。但是有可能吗? 问题答案: 我已经通过使用ActiveX控件为HTA完成了此操作。在VB6中构建控件以截取屏幕截图非常容易。我必须使用keybd_event API调用,因为SendKeys无法执行PrintScreen。这是该代码: 这只会使您到达将窗口

  • 我在浏览器栈上使用Selenium网络驱动程序自动测试,当我在Firefox和IE上截图时,它会截图整个页面。但是由于我的页面包含一个很长的列表——屏幕截图太长了,因此它不是一个清晰的图像,很难看出页面的行为是否正确。我需要它像Chrome一样精确:仅显示视口宽度和高度的屏幕截图。在Firefox和IE上可能吗? 我使用的代码:

  • 我被屏幕撕裂问题困扰了大约一周。 这里是我的问题:我想做一个程序,可以显示一个PNG图片序列非常快(以30帧或以上的速度)。为此,我使用pygame库,尤其是和。 下面是一个代码示例(带有自制的延迟功能): 计时器允许我在屏幕上有相同的刷新率。我的问题是,一个人可以亲眼看到屏幕撕裂问题(https://en.wikipedia.org/wiki/Screen_tearing)。在pyplay留档他