Я пытаюсь извлечь определенный элемент веб-страницы и сохранить его как изображение локально.phantom-node не передает возвращаемое значение из функции page.evaluate
Node.js код, используя фантомного-узел:
var phantom = require('phantom');
phantom.create().then(function(ph) {
ph.createPage().then(function(page) {
page.property('viewportSize', {width: 1600, height: 900});
page.open('http://stackoverflow.com/questions/37570827/saving-element-of-webpage-as-an-image-using-js').then(function(status) {
if (status == 'success') {
page.evaluate(function() {
return document.getElementById("sidebar").getBoundingClientRect();
}).then(function(rect){
console.log(rect);
page.property('clipRect', rect);
page.render("question2.png");
});
}
page.close();
ph.exit();
});
});
});
console.log (Rect) печатает различные значения каждый раз, когда я запустить его. Я не понимаю, почему это так, но в любом случае, я полагаю, что мой оператор возврата боковой ограничитель прямоугольника не работает. Что-то не так с кодом?
Edit: на самом деле, после дальнейшей отладки, кажется, что прямоугольник возвращается правильно, но не установлен clipRect ..
Да, это имеет смысл, что различные значения печатаются каждый раз, потому что содержание постоянно меняется. –
Проблема в том, что она всегда отображает полную страницу, а не элемент боковой панели. Я хочу определенную часть страницы. –
Вы пытались вызвать 'render' в отдельном обратном вызове' then'? –