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
.
Ответы
Ответ 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 при следующем запуске.