2014-10-16 95 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在畫布上繪製的部分。 :(