如何使用Capybara Webkit捕获特定元素或位置的屏幕截图?

时间:2015-07-29 15:35:33

标签: javascript ruby-on-rails webkit capybara capybara-webkit

是否可以使用capybara-webkit捕获特定元素或部分呈现页面的屏幕截图?

这可以通过Capybara + Poltergeist(phantomjs驱动程序)轻松完成,因为它提供了非标准的save_screenshot(路径,选择器)方法。

Looking at capybara-webkit documentation我们可以看到options的{​​{1}}参数。但深入挖掘,我发现只有#save_screenshotwidth个例子。

我需要例如,在Capybara会话期间捕获仅显示呈现的height元素的屏幕截图。该图片可在页面底部找到。

使用capybara-webkit可以做到这一点吗?怎么样?

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

完成任务。

对于那些感兴趣的人,我使用imagemagick CLI解决了这个问题:

session.save_screenshot(temp_file_path)
system("convert #{temp_file_path} -crop <width>x<height>+<left>+<top> +repage #{temp_file_path}")

答案 1 :(得分:1)

对不起,我跳过了“某个特定元素或部分渲染页面”的部分,所以下面的答案一般是截图。

您可以通过拨打save_and_open_page来保存当前的HTML 根据您想要完成的任务,这可能比屏幕截图更好,或者完全没用......

在支持它的驱动程序上,还有page.save_screenshot('screenshot.png')

有关详细信息,请参阅README on Debugging