Path: blob/master/6-Selenium/phantomjs/examples/render_multi_url.js
164 views
// Render Multiple URLs to file12var RenderUrlsToFile, arrayOfUrls, system;34system = require("system");56/*7Render given urls8@param array of URLs to render9@param callbackPerUrl Function called after finishing each URL, including the last URL10@param callbackFinal Function called after finishing everything11*/12RenderUrlsToFile = function(urls, callbackPerUrl, callbackFinal) {13var getFilename, next, page, retrieve, urlIndex, webpage;14urlIndex = 0;15webpage = require("webpage");16page = null;17getFilename = function() {18return "rendermulti-" + urlIndex + ".png";19};20next = function(status, url, file) {21page.close();22callbackPerUrl(status, url, file);23return retrieve();24};25retrieve = function() {26var url;27if (urls.length > 0) {28url = urls.shift();29urlIndex++;30page = webpage.create();31page.viewportSize = {32width: 800,33height: 60034};35page.settings.userAgent = "Phantom.js bot";36return page.open("http://" + url, function(status) {37var file;38file = getFilename();39if (status === "success") {40return window.setTimeout((function() {41page.render(file);42return next(status, url, file);43}), 200);44} else {45return next(status, url, file);46}47});48} else {49return callbackFinal();50}51};52return retrieve();53};5455arrayOfUrls = null;5657if (system.args.length > 1) {58arrayOfUrls = Array.prototype.slice.call(system.args, 1);59} else {60console.log("Usage: phantomjs render_multi_url.js [domain.name1, domain.name2, ...]");61arrayOfUrls = ["www.google.com", "www.bbc.co.uk", "www.phantomjs.org"];62}6364RenderUrlsToFile(arrayOfUrls, (function(status, url, file) {65if (status !== "success") {66return console.log("Unable to render '" + url + "'");67} else {68return console.log("Rendered '" + url + "' at '" + file + "'");69}70}), function() {71return phantom.exit();72});737475