4

我在 SO 中使用了几乎十几个答案的不同变体和建议,但似乎没有什么能帮助解决我将在下面解释的这个问题。

有一些网站,其中 phantomjs 截图看起来很糟糕,页面加载完成后通过 javascript 加载内容,因此截图看起来缺少内容。我还在项目的 Github 问题页面上发布了一个问题,但答案没有帮助。

https://github.com/ariya/phantomjs/issues/14341

上下文中的站点之一是https://angular.io/

在使用 setTimeout 进行一定延迟后,我尝试在 Page Load Finished 上截屏,还尝试按照此处所述实现 waitFor 方法:使用 phantomjs-node 实现 waitFor 功能

任何比所附网站截图更好的东西都将被接受为答案。要测试我在说什么,可以使用此代码:https ://github.com/crackjack/bulk-shot/

这段代码有效,但如预期的那样只给出了一个部分。如果您进一步增加高度,则屏幕截图效果不佳。

var webPage = require('webpage');
var page = webPage.create();

page.viewportSize = {
    width: 1024,
    height: 960
};

// Portion of the page to take a screenshot of
page.clipRect = {
    top: 0,
    left: 0,
    width: 1024,
    height: 960
};

page.open('https://angular.io/', function (status) {
    window.setTimeout(function(){
        page.render('angular.jpg');
        phantom.exit();
    }, 1000);
});

PS:SlimerJS 确实可以很好地截取屏幕截图,我觉得这是一个 WebKit v/s Gecko 的东西。在此处输入图像描述

4

0 回答 0