2013-03-23 18 views
5

Sto lavorando a un'applicazione che utilizza uservoice. Il frammento di servizioRspec si blocca periodicamente quando si utilizza capybara-webkit con una pagina che carica uno script esterno async = true

var uv = document.createElement('script'); 
    uv.type = 'text/javascript'; 
    uv.async = true; 
    uv.src = ...; // external call to uservoice to fetch js 
    var s = document.getElementsByTagName('script')[0]; 
    ... 

Questo javascript è caricato su tutte le pagine. Durante l'esecuzione di rake spec l'esecuzione verrà periodicamente interrotta. Tutti i test vengono eseguiti correttamente quando rimuovo lo snippet di uservoice. Ho provato a impostare Capybara.javascript_driver = :webkit_debug e non vedo alcuna risposta da parte di uservoice. Quando imposto page.driver.browser.timeout posso vedere una risposta 0 da uservoice e le specifiche falliranno con un errore di timeout.

Qualcun'altro incontra questo problema?

+1

Ho avuto qualcosa di simile, ma è stato risolto utilizzando la versione più moderna di ruby ​​/ capybara/rspec. – adarsh

risposta

0

Ho riscontrato errori di timeout durante l'attesa che uno script esterno guidi (ad es. Google analytics) quando la mia macchina di sviluppo si disconnette da Internet.

Ancora a volte uso driver firebug e selenio quando sto provando a eseguire il debug di capybara in quanto può essere illuminante vedere un browser effettivo.