rspec - Selenium:: WebDriver:: Error:: JavascriptError: esperando que falle la carga de evaluation.js Firefox 23
selenium-webdriver (4)
Hoy, al ejecutar mis pruebas rspec, aparece el siguiente error cuando en alguna parte de una prueba hay una llamada `page.execute_script ''.
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''
Hay un archivo evaluate.js en el directorio / resources (en lugar de componentes) de la ruta anterior, como lo está en otras máquinas.
Esto sucedió después de actualizar a Firefox 23 de 22. No he podido deshacer aún para confirmar que volver a 22 realmente soluciona el problema, pero eso es todo lo que he cambiado, creo.
¿Alguien más ha visto este problema?
Ejecutando Kubuntu 12.04, Capybara 1.1.4, Selenium-webdriver gem 2.33.0
Intenté actualizar Capybara a 2.whatever y selenium-webdriver a 2.34.0, sin cambios.
Ejecuté el siguiente y funcionó:
gem install selenium-webdriver -v "2.35.0"
He actualizado mis gemas a:
gem ''capybara'', ''~> 2.1.0''
gem ''selenium-webdriver'', ''~> 2.35.1''
Esto funcionó para mí.
Actualizar:
Capybara 2.1.0 me ha dado un problema con Phantomjs y finalmente uso la versión 2.0.3.
Instalé Selenium Webdriver recientemente y vi este mismo problema con algunos de mis scripts de prueba de Python. Después de algunas excavaciones, pude determinar que execute_script
estaba execute_script
cuando intentó convertir el valor de retorno de JS en un objeto que podría evaluarse de forma nativa (en Python para mi escenario).
Colgaría:
self.driver.execute_script(''document.body.innerHTML="<form></form>";'')
No colgaría:
self.driver.execute_script(''document.body.innerHTML="<form></form>"; return true;'')
Aún puede devolver objetos más complicados, solo tengo cuidado de que JS siempre return
explícitamente el valor que quiero o true
si solo necesito que se ejecute el script.
Espero que esto ayude.
Algunas de las lecturas que hice para resolver esto:
Tuve el mismo problema en Mac OS X Lion con FF 23.
Pero el problema desapareció cuando actualicé selenium-webdriver a 2.34.0
gem "selenium-webdriver", "~> 2.34.0"
en mi Gemfile.
bundle update selenium-webdriver
bundle install
El pepino funciona bien con selenio ahora.