由于Phantomjs中的javascript日志,无法制作屏幕截图?

由于Phantomjs中的javascript日志,无法制作屏幕截图?,javascript,phantomjs,Javascript,Phantomjs,我们正在尝试为以下站点生成最终产品页面的屏幕截图,但由于站点上的JavaScript错误,在控制台中获取错误消息,并且无法生成超过1个屏幕截图 链接: 日志: 代码[无错误句柄]: 将记录错误消息,并且不会生成屏幕截图 代码[带有错误句柄]: 这不会在控制台中记录错误消息,但仍然不会创建屏幕截图 参考资料来源: 有关屏幕截图的许多问题都是因为在呈现页面时调用page.render太早。建议在调用回调后再等待一点 使用setTimeout时,请提供如下持续时间 page.open('http:/

我们正在尝试为以下站点生成最终产品页面的屏幕截图,但由于站点上的JavaScript错误,在控制台中获取错误消息,并且无法生成超过1个屏幕截图

链接:

日志:

代码[无错误句柄]:

将记录错误消息,并且不会生成屏幕截图

代码[带有错误句柄]:

这不会在控制台中记录错误消息,但仍然不会创建屏幕截图

参考资料来源:

有关屏幕截图的许多问题都是因为在呈现页面时调用page.render太早。建议在调用回调后再等待一点

使用setTimeout时,请提供如下持续时间

page.open('http://shop.reebok.com/us/product/Men-DMXSky-Impact-Shoes/NV326?cid=V61752', function () {
    window.setTimeout(function () {
                page.render('output.jpg');
                phantom.exit();
    }, 1000);
});

另一方面,你是对的:页面上的js错误可能会阻止捕获正常工作;因此,您必须将错误处理程序添加到page.onerror或phantom.onerror。

谢谢您的回复。我试过你的解决办法,但没有奏效。最后我禁用了js,现在它工作正常。
var page = require('webpage').create();
page.onError = function(msg, trace) {

var msgStack = ['ERROR: ' + msg];

  if (trace && trace.length) {
    msgStack.push('TRACE:');
    trace.forEach(function(t) {
      msgStack.push(' -> ' + t.file + ': ' + t.line + (t.function ? ' (in function "' + t.function +'")' : ''));
    });
  }
  //console.error(msgStack.join('\n'));
};

page.open('http://shop.reebok.com/us/product/Men-DMXSky-Impact-Shoes/NV326?cid=V61752', function () {
window.setTimeout(function () {
            page.render('output.jpg');
            phantom.exit();
});
});
page.open('http://shop.reebok.com/us/product/Men-DMXSky-Impact-Shoes/NV326?cid=V61752', function () {
    window.setTimeout(function () {
                page.render('output.jpg');
                phantom.exit();
    }, 1000);
});