Nymeria Asked: 2014-07-02 21:46:46 +0800 CST2014-07-02 21:46:46 +0800 CST 2014-07-02 21:46:46 +0800 CST 如何使用 firefox 从命令行截取整页屏幕截图?[复制] 772 我需要截取整个网页的屏幕截图。 我已经看到如何从命令行截取网页的整页屏幕截图?其中提出了许多截屏方法,但我需要使用 firefox 以获得更好的效果。 firefox 3 个回答 Voted Best Answer Volker Siegel 2014-07-02T22:54:47+08:002014-07-02T22:54:47+08:00 要在 Firefox 中制作显示页面整个可滚动区域的网页截图,我提出了两种不同的方法。 两者都保存显示所有部分的页面图像或您可以通过向下滚动(和向右/向左)到达的网页 - 将所有视图位置缝合在一起; 对于长页面,图像很容易达到几千像素高。 “专业”方式——使用网络浏览器 GUI 级测试和自动化工具: 自动化工具Selenium - 通常用于 UI 测试 - 可以做整页屏幕截图;不过,为该任务设置 它似乎有些开销。 例如: Command: open; Target: http://www.google.com Command: captureEntirePageScreenshotAndWait; Target: \\Screenshots\\test.png 见so.SE:使用Selenium IDE Firefox插件的截图 要安装 Selenium 的 firefox 部分,请获取firefox 附加组件 - 但不是来自官方附加组件页面 - 它作为 xpi 文件位于 Selenium 的下载页面上。这是当前版本。 (有很多用于扩展 selenium 本身的附加组件(但在 firefox 附加组件的技术中),在附加组件网站上都称为“Selenium ...”甚至“Selenium IDE ...” -非常混乱。) “hackish”方式 - 通过键盘自动化使用内部 firefox 命令: firefox 中有一个内部命令提示符,一种开发工具,正如@Fireflight 指出的那样,它有一个制作屏幕截图的命令。但是,据我所知,这不能正常地从命令 shell 行控制。但是我们可以做的是模拟按键以利用它。 我们需要选择一个浏览器窗口,打开提示,输入 firefox 内部命令(使用基于当前日期和时间的文件名),运行命令,然后再次关闭提示: FF=$(xdotool selectwindow) xdotool key --window $FF Shift+F2 sleep 1 xdotool type --window $FF --delay 50 "screenshot page-$(date +%Y%m%d-%H%M%S).png --fullpage " xdotool key --window $FF Return sleep 0.5 key --window $FF Shift+F2 命令行实用程序xdotool可以在 X11 事件级别与 X 窗口交互。我们用它来选择显示页面的 firefox 窗口,并发送正确的击键来制作屏幕截图。 (这是一种有点脆弱的方法:它取决于键盘时序,如果提示已经打开或包含文本(要打开或关闭它,请按 Shift-F2),它将不起作用 - 但如果它起作用,那就太好了。 ) 作为这种屏幕截图的示例,这里是man xdotoolmanpages.ubuntu.com 上的一个示例,缩小到 20%(原始 1336x15653),完成了xdotool解决方案: Fireflight 2014-07-03T10:20:58+08:002014-07-03T10:20:58+08:00 在 Firefox 中,您可以点击Shift-F2,然后在出现的命令行中键入: screenshot filename.png --fullpage 还有几个可用的命令和选项。 sмurf 2014-07-02T23:05:53+08:002014-07-02T23:05:53+08:00 您可以从您的 Firefox 中获取视频。使用如下命令: mkdir ~/my_video cd ~/my_video avconv -an -f x11grab -r 30 -s 1024x768 -i :0.0+10,20 -vcodec libx264 -preset ultrafast -threads 0 video.mkv 您可能需要修改大小 (1024x768) 和位置 ( :0.0+10,20 ) 以满足您的需要。 获得视频后,您可以使用 mplayer 将其转换为一堆 .png 文件: mplayer video.mkv -vo png 然后选择最适合您需要的图像。
要在 Firefox 中制作显示页面整个可滚动区域的网页截图,我提出了两种不同的方法。
两者都保存显示所有部分的页面图像或您可以通过向下滚动(和向右/向左)到达的网页 - 将所有视图位置缝合在一起;
对于长页面,图像很容易达到几千像素高。
“专业”方式——使用网络浏览器 GUI 级测试和自动化工具:
自动化工具Selenium - 通常用于 UI 测试 - 可以做整页屏幕截图;不过,为该任务设置
它似乎有些开销。
例如:
见so.SE:使用Selenium IDE Firefox插件的截图
要安装 Selenium 的 firefox 部分,请获取firefox 附加组件 - 但不是来自官方附加组件页面 - 它作为 xpi 文件位于 Selenium 的下载页面上。这是当前版本。
(有很多用于扩展 selenium 本身的附加组件(但在 firefox 附加组件的技术中),在附加组件网站上都称为“Selenium ...”甚至“Selenium IDE ...” -非常混乱。)
“hackish”方式 - 通过键盘自动化使用内部 firefox 命令:
firefox 中有一个内部命令提示符,一种开发工具,正如@Fireflight 指出的那样,它有一个制作屏幕截图的命令。但是,据我所知,这不能正常地从命令 shell 行控制。但是我们可以做的是模拟按键以利用它。
我们需要选择一个浏览器窗口,打开提示,输入 firefox 内部命令(使用基于当前日期和时间的文件名),运行命令,然后再次关闭提示:
命令行实用程序
xdotool
可以在 X11 事件级别与 X 窗口交互。我们用它来选择显示页面的 firefox 窗口,并发送正确的击键来制作屏幕截图。(这是一种有点脆弱的方法:它取决于键盘时序,如果提示已经打开或包含文本(要打开或关闭它,请按 Shift-F2),它将不起作用 - 但如果它起作用,那就太好了。 )
作为这种屏幕截图的示例,这里是
man xdotool
manpages.ubuntu.com 上的一个示例,缩小到 20%(原始 1336x15653),完成了xdotool
解决方案:在 Firefox 中,您可以点击
Shift-F2
,然后在出现的命令行中键入:还有几个可用的命令和选项。
您可以从您的 Firefox 中获取视频。使用如下命令:
您可能需要修改大小 (1024x768) 和位置 ( :0.0+10,20 ) 以满足您的需要。
获得视频后,您可以使用 mplayer 将其转换为一堆 .png 文件:
然后选择最适合您需要的图像。