Не удается получить стабильное соединение с firefox за 60 секунд (127.0.0.1:7055)
при тестировании сценария cucumber
Я получаю следующую ошибку при запуске rspec
тесты
не удалось получить стабильное соединение firefox за 60 секунд (127.0.0.1: 7055) (Selenium::WebDriver::Error::WebDriverError)
используя ruby (1.9.2)
selenium-webdriver (2.27.2)
и firefox (19.0)
используя rspec-rails (2.12.1)
,capybara (2.0.2)
и несколько других драгоценных камней, также я добавил launchy
драгоценный камень, но они, кажется, не проблема. И я использую Windows 7
.
12 ответов:
У меня была такая же проблема (на Linux). Исправлено с помощью:
gem update selenium-webdriver
теперь я использую ruby 1.9.3-p286, selenium-webdriver 2.29.0, firefox 18.0 А также rspec-rails 2.9.0, capybara 1.1.2 и capybara-webkit 0.12.1
Я добавил selenium-webdriver 2.29.0 в мой Gemfile, чтобы быть в безопасности.
кажется, Selenium Webdriver получает частые обновления, чтобы идти в ногу с Firefox. Но как узнать, какая версия вам нужна? Надеюсь, эта процедура будет работать даже при изменении версий:
перейти к http://www.seleniumhq.org/download/.
прокрутите вниз, чтобы Привязки Языка Selenium Client & WebDriver.
в этом разделе, в Рубин язык линия, нажмите на кнопку "Изменить журнал" (прямая ссылка).
в журнале изменений определите, какая версия Selenium вам нужна для вашей версии Firefox.
если вы используете Bundler, запустите
bundle show selenium-webdriver
чтобы увидеть, какая версия у вас. Чтобы обновить, например, до 2.35.0, добавьте эту строку в свойGemfile
:gem 'selenium-webdriver', '2.35.0'
а потом беги
bundle update
установить. Если вы используете Spork, не забудьте перезапустить его перед повторным запуском тесты.обновление Один StackOverflow ответ указывает, что журнал изменений может быть обновлен раньше в репозитории исходного кода, чем в seleniumhq.org. журнал изменений репозитория для Ruby находится здесь:https://github.com/SeleniumHQ/selenium/blob/master/rb/CHANGES.
Понижение Firefox
Если вам нужно понизить Firefox на Ubuntu 12.04,ответ объясняет, как вернуться в Firefox 20. Более общее описание способа перехода на любую версию Firefox приведено здесь. Тогда используйте ответ чтобы приостановить обновление Firefox, пока Selenium не выпустит обновление, которое работает с более поздней версией Firefox.
в моем случае я понизил Firefox только для того, чтобы узнать, что Selenium Webdriver недавно был обновлен для обработки последней версии, поэтому сначала проверьте наличие обновлений Selenium!
просто столкнулся с этим на сервере CI и обнаружил, что это было потому, что Firefox не имел дисплея для использования. Я думал, что selenium webdriver заставит его работать без дальнейшего вмешательства, но это было не так.
добавление Xvfb в микс заставило его работать.
для рельсов работает огурец особенности:
gem 'headless'
затем в функции / поддержка / env.РБ
Before do if Capybara.current_driver == :selenium require 'headless' headless = Headless.new headless.start end end
эта ошибка возникает, когда версии selenium и firefox несовместимы.
есть два варианта.
обновление селен:
gem update selenium-webdriver
если это все еще не удается, то селен не был обновлен до последней версии.
понизить версию firefox:
sudo apt-get purge firefox
чтобы увидеть доступные пакеты для скачать
apt-cache showpkg firefox
sudo apt-get install firefox=#older_version#
волшебная комбинация, которая работала для меня, была Firefox 19.0 и selenium web-driver 2.32.1 (последний на момент написания статьи). Firefox 20.х и 21.x не сработало. Мне пришлось понизить Firefox. Также имейте в виду, что (по крайней мере, на Mac OS), если вы перейдете в меню FireFox -> О Firefox, он автоматически обновится до последней версии. Не делай этого.
Если вышеизложенное теперь работает, как в моем случае, дайте этому шанс.
Я получал ошибку тайм-аута на одной машине, а не на другой. Обе машины являются тонкими клиентами, выполняющими одни и те же версии всего. Так что исключил несовместимые версии firefox (ошибка произошла на одной машине, а не на другой)
оказалось, что была проблема с портом, что безголовый использовал. Был еще один процесс, использующий этот порт.
ниже фиксированной вопрос для меня:
Добавьте следующую строку в .zshenv fileexport XVFB_DISPLAY='new-port-number'
затем выполните командуzsh
в терминале установить change
У меня была эта проблема, когда я запускал irb с терминала, где я подал в суд на другого пользователя. Я бы получил эту ошибку, когда я запускал irb как этот пользователь. Но не тогда, когда я бежал как корень. И не тогда, когда я вышел обратно в оболочку, принадлежащую зарегистрированному пользователю.
для меня, я уже обновил драгоценные камни, но тогда нужно обновить пакет.
в powershell перейдите в свой каталог и обновите пакет:
cd D:\Projects\LazyAutomation bundle update
для тех, кто использует Vagrant, если вы войдете в систему, включив xserver firefox, может начать правильно, что решило его для меня. бродячий ssh -- - X
Понизить Firefox.
если уже используете
gem 'headless'
и обновление gems не желательно, так как на данный момент, то вам нужно понизить firefox.для Ubuntu (но другие дистрибутивы linux были бы очень похожи) вы должны:
удалите firefox, который поставляется с последними версиями Ubuntu
sudo apt-get purge firefox
вы можете дополнить удаление некоторых связанных данных, как описано здесь
теперь установите более старую версию Firefox. Для меня, версия 42.0 работал (как наш Travis.ci использует его)
$ export FIREFOX_SOURCE_URL='https://download.mozilla.org/?product=firefox-42.0&lang=en-US&os=linux64' $ wget --no-verbose -O /tmp/firefox-42.0.tar.bz2 $FIREFOX_SOURCE_URL $ tar xvC ~/. -f /tmp/firefox-42.0.tar.bz2 ln -s ~/firefox/firefox ~/bin/firefox
откройте новую вкладку терминала и запустите спецификации cucumber/selenium specs.
теперь вы можете скачать новую версию Firefox и создать на
/usr/share/applications/
для доступа к нему из док-станции. И пусть селен найдет по умолчанию старую версию. возьмите это за Ссылка
после выполнения предложения ballPointPenguin теперь я могу использовать watir-webdriver для извлечения локальных файлов или файлов в каталоге htdocs моей локальной установки apache или файлов в интернете:
1) file:///Users/me/jquery_programs/1.htm 2) 'http://localhost:8080/my.html' 3) 'http://www.google.com' require 'watir-webdriver' browser = Watir::Browser.new :firefox browser.goto 'http://localhost:8080/my.html'
перед обновлением, я получаю сообщение об ошибке:
'connect_until_stable': не удается получить стабильное соединение firefox в 60 секунд (127.0.0.1:7055) (Selenium:: WebDriver:: Error:: WebDriverError)