Add console.log at each layer of callbacks
Previously there was a bit of issues figuring out where problems were
happening. To resolve this we added log lines in each callback.
diff --git a/script/screenshots.js b/script/screenshots.js
index e88dd12..15016c6 100644
--- a/script/screenshots.js
+++ b/script/screenshots.js
@@ -83,6 +83,7 @@
// https://github.com/admc/wd/blob/62f2b0060d36a402de5634477b26a5ed4c051967/examples/async/chrome.js#L25-L40
browserDriver.init(cfg, function(err, _, capabilities) {
if (err) console.log(err);
+ console.log(cfg.browserName,cfg.platform,'init')
var browser = cfg.browserName.replace(/\s/g, '_')+(capabilities ? '_VERSION'+capabilities.version : '');
var platform = (capabilities || cfg).platform.replace(/\s/g, '_');
@@ -91,10 +92,13 @@
browserDriver.get(url, function(err) {
if (err) console.log(err);
+ console.log(cfg.browserName,cfg.platform,'get')
browserDriver.safeExecute('document.documentElement.scrollHeight', function(err,scrollHeight) {
if (err) console.log(err);
+ console.log(cfg.browserName,cfg.platform,'safeExecute 1')
browserDriver.safeExecute('document.documentElement.clientHeight', function(err,viewportHeight) {
if (err) console.log(err);
+ console.log(cfg.browserName,cfg.platform,'safeExecute 2')
// Firefox and Internet Explorer will take a screenshot of the entire webpage,
if (cfg.browserName != 'Safari' && cfg.browserName != 'Chrome' && cfg.browserName != 'MicrosoftEdge') {
@@ -102,9 +106,11 @@
var filename = piecesDir+'/'+browser+'_'+platform+'.png';
browserDriver.saveScreenshot(filename, function(err) {
if (err) console.log(err);
+ console.log(cfg.browserName,cfg.platform,'saveScreenshot');
browserDriver.log('browser', function(err,logs) {
if (err) console.log(err);
+ console.log(cfg.browserName,cfg.platform,'log');
var logfile = baseDir+'/'+browser+'_'+platform+'.log'
logs = logs || [];
@@ -132,35 +138,44 @@
// causing a stackoverflow in Safari.
browserDriver.safeEval('window.scrollTo(0,'+scrollTop+');', function(err) {
if (err) console.log(JSON.stringify(err));
+ console.log(cfg.browserName,cfg.platform,'safeEval 1');
// saves file in the file `piecesDir/browser_version_platform/#.png`
var filename = piecesDir+'/'+index+'.png';
browserDriver.saveScreenshot(filename, function(err) {
if (err) console.log(err);
+ console.log(cfg.browserName,cfg.platform,'saveScreenshot');
scrollTop += viewportHeight;
if (scrollTop + viewportHeight > scrollHeight) {
browserDriver.getWindowSize(function(err,size) {
+ if (err) console.log(err);
+ console.log(cfg.browserName,cfg.platform,'getWindowSize');
// account for the viewport offset
var extra = size.height - viewportHeight;
browserDriver.setWindowSize(size.width, (scrollHeight-scrollTop)+extra, function(err) {
if (err) console.log(err);
+ console.log(cfg.browserName,cfg.platform,'setWindowSize');
browserDriver.safeEval('window.scrollTo(0,'+scrollHeight+');', function(err) {
if (err) console.log(JSON.stringify(err));
+ console.log(cfg.browserName,cfg.platform,'safeEval 2');
index++;
var filename = piecesDir+'/'+index+'.png';
browserDriver.saveScreenshot(filename, function(err) {
if (err) console.log(err);
+ console.log(cfg.browserName,cfg.platform,'saveScreenshot Final');
browserDriver.log('browser', function(err,logs) {
if (err) console.log(err);
+ console.log(cfg.browserName,cfg.platform,'log');
var logfile = baseDir+'/'+browser+'_'+platform+'.log'
logs = logs || [];
fs.writeFile(logfile,logs.join('\n'), function(err) {
if (err) console.log(err);
+ console.log(cfg.browserName,cfg.platform,'writeFile');
browserDriver.quit();
});