Slimerjs只拍摄可见区域的快照

时间:2015-03-26 13:45:36

标签: facebook screenshot slimerjs

我正在使用slimerjs进行屏幕截图,如果您指定的宽度小于页面的最小宽度 - 则切割到可见区域。

这只发生在Facebook上。

https://github.com/Samael500/save_screenshot_test/blob/32af68387072a690ebce18b29c973330ac2497b4/img/slimerjs/www.facebook.com-240px.png

但在其他网站(例如Google)上渲染所有网页。

https://github.com/Samael500/save_screenshot_test/blob/32af68387072a690ebce18b29c973330ac2497b4/img/slimerjs/google.com-240px.png

我使用此脚本制作屏幕截图

    var page = require('webpage').create();
    page.settings.userAgent = 'Mozilla/5.0 (X11; Linux x86_64) Gecko/20100101 Firefox/36.0';
    page.open('https://www.facebook.com/', function (status) {
        page.viewportSize = { width:240, height:768 };
        page.render('img.png');
        page.close();
        slimer.exit();
    });

然后这样称呼它 $ ./slimerjs slimer_screen.js --ssl-protocol=any

如何快速获取Facebook页面的快照?

1 个答案:

答案 0 :(得分:1)

我找到了解决方案。在打开页面之前,您必须为浏览器指定原始分辨率。

var page = require('webpage').create();
page.viewportSize = { width:1024, height:768 };
page.settings.userAgent = 'Mozilla/5.0 (X11; Linux x86_64) Gecko/20100101 Firefox/36.0';
page.open('https://www.facebook.com/', function (status) {
    page.viewportSize = { width:240, height:768 };
    page.render('img.png');
    page.close();
 slimer.exit();
});

所以行page.viewportSize = { width:1024, height:768 };

中的解决方案