0

I'm playing around with a zombie script:

var Browser = require('zombie');
var assert = require('assert');

var browser = Browser.create();
browser.debug = true;
browser.maxRedirects = 50;
browser.userAgent = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36';
browser.visit('https://redacted.com').
  then(function () {
        console.log(browser.evaluate("document.URL"));
        console.log(browser.evaluate("document.title"));
        return browser.
                fill('uid','aUser').
                fill('password', 'aPassword').
                pressButton('Sign In');
  }).then(function() {
        console.log("Signed in?");
        console.log(browser.evaluate('document.URL'));
        console.log(browser.evaluate("document.title"));
  });

and i'm seeing a reference error:

zombie_experiment$ node zombie1.js 
  https://redacted.com/


  Possibly unhandled Error: ReferenceError: Raphael is not defined
      at Promise$_settlePromiseFromHandler [as _settlePromiseFromHandler] (/Users/user/zombie_experiment/node_modules/zombie/node_modules/bluebird/js/main/promise.js:669:58)
      at Promise$_settlePromiseAt [as _settlePromiseAt] (/Users/user/zombie_experiment/node_modules/zombie/node_modules/bluebird/js/main/promise.js:825:14)
      at Promise$_settlePromises [as _settlePromises] (/Users/user/zombie_experiment/node_modules/zombie/node_modules/bluebird/js/main/promise.js:968:14)
      at Promise$_rejectPromises [as _rejectPromises] (/Users/user/zombie_experiment/node_modules/zombie/node_modules/bluebird/js/main/promise.js:961:10)
      at Async$_consumeFunctionBuffer [as _consumeFunctionBuffer] (/Users/user/zombie_experiment/node_modules/zombie/node_modules/bluebird/js/main/async.js:75:12)
      at Async$consumeFunctionBuffer (/Users/user/zombie_experiment/node_modules/zombie/node_modules/bluebird/js/main/async.js:38:14)
      at process._tickDomainCallback (node.js:463:13)

is this reference error genuine, or is my script not a standard use case for zombie.js?

blueberryfields
  • 45,910
  • 28
  • 89
  • 168

1 Answers1

1

I couldn't make Raphael work with zombiejs. It's related to the way jsdom handles canvas. Raphael fails silently while detecting the type of drawing engine.

For me the only solution was to circumvent the parts of my application that use Raphael to draw on canvas. :(

pscheit
  • 2,882
  • 27
  • 29