При использовании PhantomJS для захвата экрана, где большая часть содержимого страницы добавляется или во время загрузки через JavaScript, я сталкиваюсь с проблемой. Вызов render() создает правильное изображение, отображая полный контент страницы, но при оценке document.body.clientHeight возвращается небольшое значение, которое предположительно является высотой страницы перед добавлением содержимого.
Как я могу получить высоту/ширину изображения, как это делает PhantomJS? Я не думаю, что это вопрос времени, я попытался заменить порядок вещей или установить длительные задержки, чтобы обеспечить полную загрузку.
var wp = require('webpage');
var page = wp.create();
page.viewportSize = { width: 1024, height: 768};
page.open(url, function (status) {
if (status === 'success') {
var f = "rendered.png";
//Produces an image with height 4073px
page.render(f);
//height is only 150
var height = page.evaluate(function() { return document.body.offsetHeight }),
width = page.evaluate(function() { return document.body.offsetWidth });
console.log(height,width);
}
});