Подтвердить что ты не робот

Selenium:: WebDriver:: Ошибка:: JavascriptError: arguments [0] - undefined

Увидев, что это проблема с Firefox 35, я установил 34 и запустил bundle exec rspec, и мои тесты прошли отлично. Но когда я попытался запустить его снова, он каким-то образом открыл новую версию Firefox, так как я снова получил следующую ошибку при запуске моего тестового пакета:

 Selenium::WebDriver::Error::JavascriptError: arguments[0] is undefined

Есть ли способ гарантировать, что у меня нет установленного Firefox 35, который Selenium как-то находит и открывает? Я знаю, что Firefox 34 является версией Firefox в моей директории Applications, но я не уверен, что нет копии копий нового Firefox, которую Selenium захватывает, когда используется launchy.

4b9b3361

Ответ 1

Это известная проблема с текущей версией селена.

Как отмечает @janders223 в комментарии к другому вопросу, временным решением для проекта Ruby является использование dev-версии selenium-webdriver gem.

Измените свой Gemfile, чтобы указать последнюю версию dev (начиная с этой записи):

gem 'selenium-webdriver', '>=2.45.0.dev3'

Затем запустите bundle install.

Ответ 2

Итак, это невероятно просто, но я обнаружил, что когда я установил Firefox 34 через dmg, перечисленные здесь, потому что я наивно просто перетащил и выбросил значок Firefox в папку "Приложения", нажав "Да, я бы хотел перезаписать существующее приложение". Я не гарантировал, что все новые файлы Firefox 35 недоступны для использования Selenium, который Selenium воспользовался не зная, какую версию он выбрал.

Я просто удалил Firefox полностью из своего mac, перетащив его в корзину и переустановил Firefox 34 dmg.

N.B. Также, если вы столкнулись с этой проблемой, когда вы загружаете Firefox 34, вам нужно перейти в Firefox > Настройки > Дополнительно, перейдите на вкладку "Обновление" и выберите "Проверить наличие обновлений, но позвольте мне выбрать, устанавливать ли их" или "Никогда не проверять для обновлений", чтобы предотвратить автоматическое обновление Firefox до Firefox 35 и, следовательно, возиться с вашим тестовым набором Selenium при следующем запуске.