3

我正在使用 phantomjs 截取几个网页的屏幕截图。要获取屏幕截图图像,我使用了以下代码。

var page = require('webpage').create(); 
page.viewportSize = { width: 1200,height: 800};
page.open('http://<randomwebpageAddress>', function(status) {
  console.log(status);
  console.log(page.render('screenshot.png'));
  phantom.exit();
});

但某些页面的结果是

status = "success"但是 page.render 返回 false

我的问题是:

什么时候page.render()返回false?

4

2 回答 2

0

docs来看, 的返回值render()并不重要。

于 2015-05-21T07:30:50.183 回答
0

虽然文档说 render() 没有返回类型,但它总是返回一个布尔值,表示渲染操作成功。

false如果内容为空,该函数将始终返回,这绝不应该发生。

由于该render()函数可以渲染成PNG、JPG、GIF、PDF等多种格式,因此返回值的含义可能略有不同。

PDF格式

false如果格式选项设置不正确,则只能返回。

GIF (pre v2)

它仅在目标文件不可写时返回。false

JPG、PNG(和 GIF)

返回值来自 QImage::save()并表示成功的渲染和文件写入

于 2015-05-21T09:10:38.590 回答