Advertisement
nhoizey

PhantomJS screenshots

Jul 15th, 2013
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.62 KB | None | 0 0
  1. /*
  2.  Use:
  3.  phantomjs render.js 1024x768 http://gasteroprod.com/
  4.  */
  5.  
  6. var args = require('system').args,
  7.     url = 'http://www.google.com/',
  8.         now = new Date(),
  9.     nowString = now.getFullYear() + pad(now.getMonth() + 1) + pad(now.getDate()) + '-' + pad(now.getHours()) + pad(now.getMinutes()) + pad(now.getSeconds()),
  10.     viewportSize = {width: 1280, height: 1024},
  11.     page = require('webpage').create();
  12.  
  13. if (args.length >= 1) {
  14.   args.forEach(function(arg, i) {
  15.     // set URL
  16.     if (arg.match(/^https?:\/\//)) {
  17.       url = arg;
  18.     }
  19.     // set viewport size
  20.     if (arg.match(/^[0-9]+x[0-9]+$/)) {
  21.             var viewportParts = arg.split('x');
  22.             viewportSize = {width: viewportParts[0], height: viewportParts[1]};
  23.     }
  24.   });
  25. }
  26. console.log('Url: ' + url);
  27. console.log('Viewport: width=' + viewportSize.width + ' / height=' + viewportSize.height);
  28. page.viewportSize = viewportSize;
  29. page.clipRect = {
  30.   top: 0,
  31.   left: 0,
  32.   width: viewportSize.width,
  33.   height: viewportSize.height
  34. };
  35. var screenshotPath = 'screenshots/' + nowString + '-' + viewportSize.width + 'x' + viewportSize.height + '/screenshot-';
  36.  
  37. // launch timer
  38. var timer = Date.now();
  39.  
  40. // open the page and kill phantom upon completion
  41. page.open(url, function (status) {
  42.   phantom.exit();
  43. });
  44.  
  45. // try to get a screenshot every 10 milliseconds
  46. setInterval(function() {
  47.   page.render(screenshotPath + pad(Date.now() - timer, 6) + '.png');
  48. }, 10);
  49.  
  50. // 30 seconds timeout
  51. setTimeout(function() {
  52.   phantom.exit();
  53. }, 30000);
  54.  
  55.  
  56. function pad(number, size) {
  57.   var r = String(number);
  58.   while (r.length < size) {
  59.     r = '0' + r;
  60.   }
  61.   return r;
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement