5

该脚本有效:

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

var html = '<h1>Test</h1><img>'; //works with page.setContent and page.content
//var html = '<h1>Test</h1><img src=".">'; //only works with page.content

page.setContent(html, 'http://github.com');
//page.content = html;

page.render('test.png');
phantom.exit();

但是向它添加一个src属性img会使其静默失败(page.render返回false并且不生成图像)。

直接设置page.content在这两种情况下都有效,但相对 URL 则无效。加载资源的其他标签也会发生同样的情况,例如link. 链接资源是否存在并不重要。在 1.8.1 和 1.9.2 中测试。

这是一个错误还是我误解了 API?

4

1 回答 1

4

如果网页未完全加载,则无法呈现网页。

当您设置 link 或srcto<img>时,它将尝试异步加载图像。因此,它需要等待加载完成。

试试下面的代码。

page.onLoadFinished = function(status) {
    page.render('test.png');
    phantom.exit();
};
page.setContent(html, 'http://github.com');
于 2014-02-19T13:32:22.693 回答