Моя цель - выполнить PhantomJS, используя:
// adding $op and $er for debugging purposes
exec('phantomjs script.js', $op, $er);
print_r($op);
echo $er;
И затем внутри script.js
, я планирую использовать несколько page.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()
, которые должны были выводиться из 1-го и 2-го блоков) и выполняются только третий блок кода.