此脚本有效:
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?
答案 0 :(得分:4)
如果网页未完全加载,则无法呈现该网页。
当您设置链接或src
到<img>
时,它会尝试异步加载图片。
因此,它需要等待加载完成。
请尝试以下代码。
page.onLoadFinished = function(status) {
page.render('test.png');
phantom.exit();
};
page.setContent(html, 'http://github.com');