截取元素的截图

时间:2015-02-12 07:43:17

标签: javascript jquery node.js phantomjs

嘿,我正在尝试使用phantomjs渲染特定元素的屏幕截图。我正在使用nodejs的phantomjs桥:phantom

这是我到目前为止所得到的:

page.includeJs('http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js');
var elementBounds = page.evaluate(function () {
    var clipRect = document.querySelector("#yw0").getBoundingClientRect();
    return {
        top: clipRect.top,
        left: clipRect.left,
        width: clipRect.width,
        height: clipRect.height
    };
});
var oldClipRect = page.clipRect;
page.clipRect = elementBounds;
page.render('element.png');
page.clipRect = oldClipRect;

它以某种方式不起作用我总是得到整个页面的截图!我错了什么?

1 个答案:

答案 0 :(得分:0)

使用NightmareJs解决它。那是我的代码:

var Nightmare = require('nightmare');
var Screenshot = require('nightmare-screenshot');
var nightmare = new Nightmare();
nightmare.goto('url');
nightmare.use(Screenshot.screenshotSelector('element.png', 'img[id="yw0"]'));
nightmare.run();