我在 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);
});