2014-10-16 64 views
0

我玩弄僵尸剧本:在zombie.js中缺失Raphael依赖项?

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

我无法让Raphael和zombiejs一起工作。这与jsdom处理画布的方式有关。 Raphael在检测绘图引擎的类型时默默无闻。

对我来说,唯一的解决方案是规避我的应用程序中使用Raphael在画布上绘制的部分。 :(