Selenium::WebDriver::Error:: JavascriptError: ожидание оценки.не удалось загрузить JS Firefox 23


сегодня, выполняя мои тесты rspec, я получаю следующую ошибку всякий раз, когда где-то в тесте есть страница.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'

есть файл оценки.js в каталоге / resources (вместо компонентов) пути выше, как и на других машинах.

Это произошло после обновления Firefox 23 С 22. Я еще не смог откатиться, чтобы подтвердить, что возвращение к 22 действительно устраняет проблему, но это все, что изменилось я верить.

кто-нибудь еще видел эту проблему?

запуск Kubuntu 12.04, Capybara 1.1.4, selenium-webdriver gem 2.33.0

Я попытался обновить Capybara до 2.что бы ни было и selenium-webdriver до 2.34.0, никаких изменений.

4   51   2013-08-08 02:00:09

4 ответа:

у меня была такая же проблема на Mac OS X Lion с FF 23.

но проблема ушла для меня, когда я обновил selenium-webdriver до 2.34.0

добавил gem "selenium-webdriver", "~> 2.34.0" в мой Gemfile.

bundle update selenium-webdriver

bundle install

огурец отлично работает с селеном сейчас.

я обновил мои драгоценные камни:

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

это сработало для меня.

обновление:

Capybara 2.1.0 дал мне проблему с Phantomjs и, наконец, я использую версию 2.0.3.

Я побежал ниже, и это сработало :

 gem install selenium-webdriver -v "2.35.0"

недавно я установил Selenium Webdriver и увидел эту же проблему с некоторыми из моих тестовых сценариев Python. После некоторых раскопок я смог определить, что execute_script зависал, когда он пытался преобразовать возвращаемое значение JS в объект, который может быть оценен изначально (в Python для моего сценария).

удавился бы:

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

не вешать:

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

вы все еще можете вернуть более сложные объекты, я просто будьте осторожны, чтобы всегда явно иметь JS return значение, которое я хочу или true если мне просто нужен скрипт для выполнения.

надеюсь, что это помогает.

некоторые из чтения я сделал, чтобы выяснить это: