请参阅下面的代码 我想捕获两个网页 使用phantomjs运行此代码后,我只获得了一个网页截图(www.baidu.com) 是phantomjs singleton的网页吗?我可以在一个phantomjs中打开两个网页吗?
var webpage1 = require('webpage').create();
webpage1.onLoadFinished = function() {
webpage1.render('1.png');
}
webpage1.open('http://www.google.com');
var webpage2 = require('webpage').create();
webpage2.onLoadFinished = function() {
webpage2.render('2.png');
}
webpage2.open('http://www.baidu.com');
更新
谢谢@Cybermaxs
我推迟了脚本的结束,它的工作原理。我有两张截图。
var webpage1 = require('webpage').create();
webpage1.onLoadFinished = function() {
webpage1.render('1.png');
}
webpage1.open('http://www.google.com.cn');
var webpage2 = require('webpage').create();
webpage2.onLoadFinished = function() {
webpage2.render('2.png');
}
webpage2.open('http://www.baidu.com');
setTimeout(function() {
console.log(webpage1.url);
console.log(webpage2.url);
phantom.exit(0);
}, 9000);
答案 0 :(得分:1)
问题是你的脚本是PhantomJS是异性的。 您的脚本将在
之前结束有很多方法可以解决这个问题:
延迟脚本结束
setTimeout(function()
{
phantom.exit(0);
},5000);
使用waitFor example等待所有屏幕截图
使用重复方法
var webpage = require('webpage').create();
webpage.open('http://www.google.com', function(status)
{
if (status !== 'success') {
console.log('FAIL to load the address');
} else
{
webpage.render('1.png');
webpage.open('http://www.baidu.com',function(status)
{
if (status !== 'success') {
console.log('FAIL to load the address');
} else
{
webpage.render('2.png');
}
phantom.exit(0);
});
}
}
);
确定,您可以同时打开两个页面。