我在VPS的Xvfb上运行火狐。我想做的是对页面进行全页截图。
我可以使用以下方法将Firefox重定向到特定页面
firefox http://google.com
并使用ImageMagick进行屏幕截图(在X内部)
import root -window output.jpg
问题是,大部分页面需要滚动,我无法事先知道高度。
另一种方法是挑一个非常大的高度(像4000px)然后对图像进行处理,去掉无用的部分。但那是不必要的处理。
我发现了许多Firefox插件,但我正在寻找一个可以使用Shell命令行编程的解决方案。
编辑:我最终编写了自己的FireFox扩展来完成此操作。
更新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
类似。
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。默认情况下,屏幕截图保存到下载目录中。
这篇帖子和这篇有关: 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留档他