2013-08-07 8 views
51

Oggi in esecuzione le mie prove RSpec, ottengo il seguente errore ogni volta che da qualche parte in un test theres una chiamata `page.execute_script'.selenio :: WebDriver :: Errore :: JavascriptError: in attesa di evaluate.js carico fallito Firefox 23

Selenium::WebDriver::Error::JavascriptError: 
    waiting for evaluate.js load failed 
# [remote server] file:///tmp/webdriver-profile20130807-3105-fpynb7/extensions/[email protected]/components/driver_component.js:8360:in `r' 
# [remote server] file:///tmp/webdriver-profile20130807-3105-fpynb7/extensions/[email protected]/components/driver_component.js:392:in `fxdriver.Timer.prototype.runWhenTrue/g' 
# [remote server] file:///tmp/webdriver-profile20130807-3105-fpynb7/extensions/[email protected]/components/driver_component.js:386:in `fxdriver.Timer.prototype.setTimeout/<.notify' 

C'è un file evaluate.js nella directory/risorse (invece di componenti) del percorso di cui sopra, in quanto è su altre macchine.

Questo è accaduto dopo l'aggiornamento a 23 di Firefox da 22. Non ho ancora potuto eseguire il rollback per confermare che tornare a 22 risolve effettivamente il problema, ma questo è tutto ciò che è cambiato credo.

Qualcun altro ha visto questo problema?

esecuzione Kubuntu 12.04, Capybara 1.1.4, selenio WebDriver gioiello 2.33.0

ho provato ad aggiornare Capybara a 2.whatever e selenio-WebDriver a 2.34.0, nessun cambiamento.

risposta

85

Ho avuto lo stesso problema su Mac OS X Lion con FF 23.

Ma il problema è andato via per me quando ho aggiornato il selenio-WebDriver a 2.34.0

ho aggiunto gem "selenium-webdriver", "~> 2.34.0" nel mio Gemfile.

bundle update selenium-webdriver

bundle install

cetriolo funziona bene con il selenio ora.

+0

Oooookay, giuro che ho fatto prima, ma ora sta funzionando. Forse mi sono dimenticato di "installare", chi lo sa. Ad ogni modo, risolto il mio problema così divertiti, grazie! –

+1

Stavo vedendo lo stesso in un test di TestNG. È stato semplicemente rimosso selenio-java-2.33.0.jar e sostituito con selenio-java-2.34.0.jar. –

+1

Grazie. Ha funzionato. –

0

ho installato Selenio WebDriver di recente e ho visto questo stesso problema con alcuni dei miei script di test Python. Dopo alcuni scavi, sono stato in grado di determinare che execute_script si bloccava quando tentava di convertire il valore di ritorno JS in un oggetto che poteva essere valutato in modo nativo (in Python per il mio scenario).

si bloccano:

self.driver.execute_script('document.body.innerHTML="<form></form>";') 

Non sarebbe appendere:

self.driver.execute_script('document.body.innerHTML="<form></form>"; return true;') 

è ancora possibile restituire gli oggetti più complicati, sono solo attento a sempre esplicitamente avere JS return la valore che voglio o true se ho solo bisogno dello script da eseguire.

Spero che questo aiuti.

Alcuni di lettura che ho fatto per questo numero:

4

Ho aggiornato il mio gemme per:

gem 'capybara',    '~> 2.1.0' 
gem 'selenium-webdriver', '~> 2.35.1' 

Questo ha funzionato per me .

Aggiornamento:

Capybara 2.1.0 mi ha dato un problema con Phantomjs e, infine, utilizzare la versione 2.0.3.

+0

Questo funziona per me su Ubuntu 12.04 LTS, quando si usa Spork non dimenticare di fermare e riavviare il server in modo che subisca delle modifiche. – marman

1

ho eseguito il sotto e ha funzionato:

gem install selenium-webdriver -v "2.35.0" 
Problemi correlati