2013-07-26 3 views
3

У меня возникла проблема после проблемы с получением Behat для работы с Zombie.js. Проблема, с которой я столкнулся сейчас, действительно находится в модуле Zombie.js (раньше, ошибки были в связи между ними).Zombie.js с Behat и Mink

Ошибка выглядит так.

[RuntimeException]                                 
    Server process has been terminated: (8) [                            
    url.js:107                                   
     throw new TypeError("Parameter 'url' must be a string, not " + typeof url)                  
      ^                                   
    TypeError: Parameter 'url' must be a string, not undefined                       
     at Url.parse (url.js:107:11)                              
     at urlParse (url.js:101:5)                              
     at Object.urlResolve [as resolve] (url.js:405:10)                         
     at History._resolve (/Users/nathanielh/www/website/node_modules/zombie/lib/zombie/history.coffee:201:20)           
     at History._assign (/Users/nathanielh/www/website/node_modules/zombie/lib/zombie/history.coffee:209:18)           
     at /Users/nathanielh/www/website/node_modules/zombie/lib/zombie/browser.coffee:326:30                
     at Browser.withOptions (/Users/nathanielh/www/website/node_modules/zombie/lib/zombie/browser.coffee:105:14)          
     at Browser.visit (/Users/nathanielh/www/website/node_modules/zombie/lib/zombie/browser.coffee:320:12)            
     at Socket.eval (eval at <anonymous> (/private/var/folders/fv/fp4xrfnx7kzfq2bqzywq5p9w00010f/T/mink_nodejs_serverSZBH0W:43:10), <anonymous>:2:9) 
     at Socket.<anonymous> (/private/var/folders/fv/fp4xrfnx7kzfq2bqzywq5p9w00010f/T/mink_nodejs_serverSZBH0W:43:5)         
    ]                                      

Я обнаружил, что в history.coffee, функция resolve пытается использовать элемент массива, который не существует.

// history.coffee 
    _resolve: (url)-> 
    if url 
     return URL.resolve(@_stack[@_index]?.url, url) 
    else # Yes, this could happen 
    return @_stack[@_index]?.url 

, что ссылка на @_stack[@_index] решает неопределен, который затем передается в URL.resolve, который затем вызывает ошибку.

Любая идея, почему это произойдет?

Update

Я заметил, что @_stack пуст, и @_index является -1. Это не возможно, не так ли?

+0

Какую версию nodejs вы используете? –

ответ

0

Тот же вопрос при попытке имитации $ nodeElement-> MouseOver() с норка/Behat/Symfony2.1

TypeError: Parameter 'url' must be a string, not object 
    at Url.parse (url.js:107:11) 
    at urlParse (url.js:101:5) 
    at Object.urlResolve [as resolve] (url.js:405:10) 
    at Object.iframe.setAttribute (/usr/lib/node_modules/zombie/lib/zombie/jsdom_patches.js:164:43) 
    at attrCopy (/usr/lib/node_modules/zombie/node_modules/jsdom/lib/jsdom/level1/core.js:331:14) 
    at Object.core.Node.cloneNode (/usr/lib/node_modules/zombie/node_modules/jsdom/lib/jsdom/level1/core.js:636:18) 
    at Object.core.Node.cloneNode (/usr/lib/node_modules/zombie/node_modules/jsdom/lib/jsdom/level1/core.js:706:37) 
    at Function.jQuery.extend.clone (/js/2225e47_jquery-1.8.2_2.js:6222:17) 
    at Function.jQuery.extend.parseHTML (/js/2225e47_jquery-1.8.2_2.js:501:31) 
    at jQuery.fn.jQuery.init (/js/2225e47_jquery-1.8.2_2.js:131:24) 
    at jQuery (/js/2225e47_jquery-1.8.2_2.js:44:10) 
    in /js/45a7194_jquery.jqModal_9.js 

Node версии v0.10.15. Все еще копаю ответы.

1

Драйвер зомби с узлом версии 0.8.24 (0.8.23 работает нормально). Я считаю, что это происходит из-за изменения:

2013.06.04, Version 0.8.24 (maintenance), c1a1ab067721ea17ef7b05ec5c68b17f05 

* url: Properly parse certain oddly formed urls (isaacs) 

Аналогичное изменение (сделано в тот же день), как представляется, были сделаны в 0.10.10 (хотя я не изучал совершающее непосредственно).

2013.06.04, Version 0.10.10 (Stable), 25e51c396aa23018603baae2b1d9390f5d9db496 

* url: Properly parse certain oddly formed urls (isaacs) 

Я бы порекомендовал revertting to 0.8.23 или 0.10.9, чтобы получить эту работу. Если вы еще не используете его, я рекомендую nvm для управления установками узлов.

Смежные вопросы