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



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

这可以很容易地完成Capybara + Poltergeist (phantomjs驱动程序),因为它提供了一个非标准的save_截图(路径,选择器)方法。

查看capybara-webkit文档,可以看到#save_screenshotoptions参数。但深入挖掘,我发现只有widthheight的例子。

例如,我需要在Capybara会话期间捕获只显示渲染的img元素的屏幕截图。该图片位于页面底部

使用capybara-webkit?如何?

任何帮助都将非常感激。

任务完成

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

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

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


可以通过调用save_and_open_page保存当前的HTML。
根据你想要完成的任务,这可能比截图要好得多,或者根本没用……

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

有关详细信息,请参阅关于调试的README

最新更新