我的目标是使用以下方法执行 PhantomJS:
// adding $op and $er for debugging purposes
exec('phantomjs script.js', $op, $er);
print_r($op);
echo $er;
然后在里面script.js
,我打算用multiplepage.open()
来截取不同页面的截图,比如:
var url = 'some dynamic url goes here';
page = require('webpage').create();
page.open(url, function (status) {
console.log('opening page 1');
page.render('./slide1.png');
});
page = require('webpage').create();
page.open(url, function (status) {
console.log('opening page 2');
page.render('./slide2.png');
});
page = require('webpage').create();
page.open(url, function (status) {
console.log('opening page 3');
page.render('./slide3.png');
phantom.exit(); //<-- Exiting phantomJS only after opening all 3 pages
});
在运行exec
时,我在页面上得到以下输出:
Array ( [0] => opening page 3 ) 0
结果我只得到了第三页的截图。我不确定为什么 PhantomJS 会跳过第一和第二个代码块(从console.log()
应该从第一个和第二个块输出的丢失消息中可以看出)并且只执行第三个代码块。