Попробуйте подождать после открытия страницы с другими таймаутами.
const page = require("webpage").create();
const getImage = (link, duration) => {
page.viewportSize = { width: windowWidth, height: windowHeight };
page.scrollPosition = { top: 0, left: 0 };
let videoDuration = Math.floor(duration * 25);
if (link.startsWith("http://") || link.startsWith("https://")) {
page.open(link, () => {
let frame = 0;
setTimeout(() => {
setInterval(() => {
page.render("frames/image" + frame++ + ".png", {
format: "png"
});
page.evaluate(function () { window.scrollBy(0, 100); });
if (frame > videoDuration) {
phantom.exit();
}
}, 25);
}, 1000);
});
} else {
console.log("Enter a valid link");
phantom.exit();
}
};
getImage(imageLink, duration);
Попробуйте также использовать другие методы прокрутки: window.scrollTo(...)
, document.body.scrollTop = ...
ОБНОВЛЕНИЕ:
window.scrollBy(X, Y);
- это функция, а не свойство.