Не удается получить стабильное соединение с 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 73

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. Но как узнать, какая версия вам нужна? Надеюсь, эта процедура будет работать даже при изменении версий:

  1. перейти к http://www.seleniumhq.org/download/.

  2. прокрутите вниз, чтобы Привязки Языка Selenium Client & WebDriver.

  3. в этом разделе, в Рубин язык линия, нажмите на кнопку "Изменить журнал" (прямая ссылка).

  4. в журнале изменений определите, какая версия 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!

bundle update selenium-webdriver

просто столкнулся с этим на сервере 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 несовместимы.

есть два варианта.

  1. обновление селен:

    gem update selenium-webdriver

    если это все еще не удается, то селен не был обновлен до последней версии.

  2. понизить версию 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 file
export 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)