如何在Firefox的网页中截取包含滚动元素的屏幕截图?


70

我需要截取整个网页的屏幕截图。诀窍在于,我需要屏幕截图包含屏幕中不适合的单个元素的全部内容。

它是一个单列表,由于其高度而具有滚动条。它不是IFRAME(在其自己的标签中加载起来很简单)。

该列包含格式化的文本和一些小图像。

对于滚动的长网页,执行此任务很简单。但是,当滚动页面中包含单个元素时,如何实现呢?

为了清楚起见,我需要捕获整个页面,而不仅仅是元素本身。

我想在Windows上使用Firefox完成此操作。


2
是否曾经考虑过将页面另存为PDF?使用此方法的要点是某些网站具有PDF所包含的“打印视图”,但是在某些情况下,此技术可以使用。
JakeGould

@JakeGould谢谢杰克。滚动页面中的元素是否可行?
RockPaperLizard

Welp,错过了有关滚动元素的部分。对于我来说,这太特殊了,以至于我无法评论,所以我只能说现在我不确定PDF打印方法是否可以工作。祝您好运,并在此处提出其他想法。
JakeGould


如果我理解正确,那么所涉及的滚动元素可能被迫小于其完整高度。将高度样式属性设置为该元素上的auto可能会有所帮助。
tehwalris

Answers:


86

我的建议是使用Firefox的内置功能该功能允许您拍摄单个DOM元素的屏幕截图。

只需弹出打开开发人员工具→查找元素→右键单击并截图

在此处输入图片说明

它在我的一个内部站点上不起作用,因此不能说它对所有人都起作用。

OP编辑后更新:

如果您打算记录整个页面以及整个DOM元素内容,如下所示,则应该实时编辑DOM元素的高度,但是 ...

在此处输入图片说明

它会将大量DOM元素从视口和屏幕截图或AFAIK中推出,其他任何工具都无法捕获它,这超出了我的意图。

https://en.wikipedia.org/wiki/Screenshot阅读以下内容

屏幕截图,屏幕截图,屏幕截图,屏幕截图,屏幕截图或屏幕抓图是人拍摄的图像,用于记录显示器,电视或其他使用中的视觉输出设备上显示的可见项。

如果确实需要按照自己的方式进行操作,则可以创建一个GIF或在整个页面上截取两个屏幕截图,而仅将DOM元素截取两个屏幕截图以合并为一个。


非常感谢您的回答(和出色的形象!),但是不幸的是,这并不能回答问题。我需要对包括元素的整个页面进行截图,而不仅仅是元素本身。
RockPaperLizard

5
@RockPaperLizard实际上是@pun的回答确实回答了您的问题……他只是没有将其应用于您的用例。您可以按照他的回答进行操作,但是选择<body>元素,它将为您提供所需的屏幕截图。
数字克里斯

2
如果您编辑DOM元素的高度以便没有内部滚动条,则使用FireShot捕获整个页面,它应该可以工作。

我能够得到一个这样的屏幕截图,但是没有更多。它仍然会产生相机快门声,只是什么也没放入剪贴板。开发人员工具栏中的命令也是如此,不会创建任何文件。
MrFox

@MrFox在“下载”文件夹中创建一个png文件。
AxiomaticNexus

24

您可以从开发者工具栏使用screenshot命令:

  1. Shift+ F2打开工具栏,或从Web Developer Tools菜单中选择它。

  2. 在工具栏中,键入命令screenshot --fullpage fullpage.png

要捕获单个元素,可以将其css选择器与--selector标志一起使用,例如

screenshot --selector #hot-network-questions

会给你下面的图片

在此处输入图片说明


4
@RockPaperLizard我发现了另一个答案相同的帖子,OP由您编辑。
双关语

@pun谢谢。但是我需要对元素扩展的整个页面进行截图,而不仅仅是元素本身。
RockPaperLizard

我能够得到一个这样的屏幕截图,但是没有更多。它仍然会产生相机快门声,但不会产生文件声。在开发人员模式下右键单击元素并以这种方式进行复制也是如此。没有图像发送到剪贴板。
MrFox

8

使用Firefox的自适应设计模式,将宽度设置为正常值,然后将高度设置为足以覆盖整个页面的高度,然后单击屏幕截图按钮(相机图标)。


4

有一个名为Snagit的软件可以解决您的问题。该软件可以采用不同类型的屏幕截图,例如滚动窗口,也可以录制视频。

这是一个付费应用程序,但是也有一个试用版。


如果您找到它作为答案并标记为评论,这是什么意思?
AL


我已经使用SnagIt多年了。这是一个非常有用的软件。
罗伊·廷克

2

我使用Screenpresso。它允许您拍摄滚动屏幕截图。基本上,您会截取屏幕截图,向下滚动然后再截取一个,依此类推,然后Screenpresso将它们缝合在一起。Screenpresso也是免费的。

仅供参考,滚动屏幕截图的快捷键是WindowsKey + Shift + PrintScreen。然后,您需要单击要滚动的窗口。转到屏幕截图的下一部分时,右键单击,向下滚动,右键单击等等。完成操作后,单击鼠标左键,它们将被缝合在一起。确保在每个屏幕截图上都有一些重叠,以便拼接过程更好地工作。


1

有一个名为Nimbus Screen Capture扩展程序,非常适合此任务。

您可以选择捕获:

  • 页面的可见部分(用于不包含浏览器元素,而不是alt+ Print Scrn
  • 页面的一部分(您可以将鼠标悬停在屏幕上的区域上以找到所需的片段-这些区域对应于其底层HTML元素)
  • 选定区域(您手动单击并拖动到想要的屏幕截图,支持拖动时滚动)
  • 整个页面

雨云


谢谢您的回答,不胜感激。不幸的是,看起来Nimbus Screen Capture无法捕获页面中滚动元素的全部内容。如果我弄错了,您能否提供更多有关如何使用该工具完成此操作的详细信息?
RockPaperLizard

@RockPaperLizard你是对的,它似乎不支持此功能-我以为片段模式可以覆盖滚动元素,或者所选区域模式可以工作,但是,尽管可以在此模式下滚动窗口,滚动元素不能。
基思·霍尔

感谢您确认我没看到它。也许他们会将该功能添加到将来的版本中。
RockPaperLizard

0

使所有内容适合一页的选项:

  • 使用<Ctrl>-到一个页面上都适合
  • 将屏幕旋转到纵向模式
  • 在纵向模式下使用第二个屏幕并将其定位在第一个屏幕下方
  • 结合以上所有

另一个选择是对要捕获的内容进行屏幕截图。向下滚动,进行下一个截屏。重复此过程,直到您捕获了所有内容。
可选:使用图像编辑器(例如gimp)将屏幕截图组合成一个大图像。


1
在我提到项目4之前,我还以为您只是建议合并所有项目!我当时想象有20个屏幕,并将它们一个堆叠在另一个之上……大声笑。然后我进入了#4,了解到您的意思是要单独使用组合使用的项目。
RockPaperLizard

但是,如果缩小页面,则无法将其缩小而不会变形。
NiCk Newman

0

要拍摄屏幕截图,您可以添加扩展程序(如简单的屏幕截图)。然后,您将更容易进行屏幕截图。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.