2014-10-16 9 views
0

Я играл с зомби сценарием:Отсутствует зависимость Рафаэля в zombie.js?

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")); 
    }); 

и я вижу ссылочную ошибку:

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) 

этой ссылка ошибку подлинный, или мой сценарий не стандартный случай использования для zombie.js?

ответ

1

Я не мог заставить Рафаэля работать с зомби. Это связано с тем, как jsdom обрабатывает холст. Рафаэль терпит неудачу, обнаруживая тип механизма рисования.

Для меня единственным решением было обходить части моего приложения, которые используют Рафаэль для рисования на холсте. :(