PhantomJS - 从许多URL获取屏幕截图

时间:2014-01-15 19:29:08

标签: javascript phantomjs

我在capture.js文件中有这段代码:

var page = require('webpage').create();
var ii = 1;
page.open('http://stackoverflow.com/', function() {page.render('capture_' + ii + '.png');}); ii++;
page.open('http://github.com/',        function() {page.render('capture_' + ii + '.png');}); ii++;
page.open('http://google.com/',        function() {page.render('capture_' + ii + '.png');}); ii++;
phantom.exit();

该代码不产生任何东西。

如何编写js文件以从URL列表中获取屏幕截图?

1 个答案:

答案 0 :(得分:1)

你可以这样做,因为Javascript本质上是异步的。只有在加载前一页时(在回调中)才应打开新页面。

渲染三页的最简单方法可能是:

var page = require('webpage').create();
page.open('http://stackoverflow.com/', function() {
    page.render('capture_stackoverflow.png');
     page.open('http://github.com/',        function() {
        page.render('capture_github.png');
        page.open('http://google.com/',        function() {
            page.render('capture_google.png');
            phantom.exit();
        }); 
    }); 
}); 

查看官方render_multi_url.js示例。