не вдалося отримати стабільне з’єднання Firefox за 60 секунд (127.0.0.1:7055)


80

Отримання наступної помилки під час запуску тестів rspec

не вдалося отримати стабільне з’єднання Firefox за 60 секунд (127.0.0.1:7055) у рейках

Використовуючи останню версію ruby ​​(1.9.2) та firefox (6.0)

Використання rspec-rails, capybara та кількох інших дорогоцінних каменів, але, схоже, це не проблема. Ці тести добре працюють в іншому середовищі (Linux).

Відповіді:


99

[Оновлення - це може (було для мене) все ще виправити цю проблему в 2015 році | mdurrant |]

Нещодавно я зіткнувся з цією проблемою .

Вам слід перейти на capybara v1.0.1, щоб мати правильний веб-драйвер селену.

Для впевненості я додав:

gem 'selenium-webdriver', '2.25.0'

у моєму Gemfile.

Важливе зауваження : камінь оновлюється, і нова версія випущена, для кожної наступної версії Firefox. Наразі потрібна версія для підтримки Firefox 15 .
selenium-webdriver2.25.0


11
Я насправді зробив `` пакетне оновлення selenium-webdriver '', але в будь-якому випадку мета полягає в тому, щоб оновити gem selenium-webdriver до 2.5.0. Після оновлення тести пройшли нормально.
Srini K

щойно зробив. Вибачте за затримку.
Srini K

1
потрібно було зробити - самоцвіт 'selenium-webdriver', '> = 2.5.0' - для firefox 11. це
дало

7
А для Firefox 19 потрібен селен-веб-драйвер 2.31.0. Здається, відповідь завжди: "завантажте найновіший селен-веб-драйвер".
jwadsack

Я завжди просто залишаю номер версії вимкненим selenium-webdriverі роблю, bundle update selenium-webdriverколи версія потребує оновлення.
Джейсон Світт,

17

Я не зміг змусити його працювати з Firefox 10 на Ubuntu. Перехід на Chrome допоміг.

Встановіть драйвер Chrome .

spec_helper.rb:

Capybara.register_driver :selenium_chrome do |app|   
  Capybara::Selenium::Driver.new(app, :browser => :chrome)
end

У вашій специфікації:

Capybara.current_driver = :selenium_chrome
... tests ...
Capybara.use_default_driver

5
якщо ти на Mac, ти можеш простоbrew install chromedriver
Will

Працював у мене, за винятком, що так було: Capybara.javascript_driver = :selenium_chrome(замість налаштування current_driver.)
Тім Скотт

Перехід на Chrome допоміг вам встановити стабільне з’єднання Firefox? Захоплююче. :)
Д. Патрік

12

Для тих, хто стикається з цим із Firefox 12, поточний веб-драйвер селену (2.21) не підтримує FF12. Єдиним рішенням, яке я знайшов, є продовження використання Firefox - це зниження версії Firefox, доки селен-веб-драйвер не буде оновлений з підтримкою FF12.

Це можна зробити за допомогою диспетчера пакунків synaptic, вибравши пакет Firefox та натиснувши меню Пакет> Примусова версія> вибрати попередню версію. Потім застосуйте зміни.

Якщо у вас немає synaptic, ви можете встановити його за допомогою apt-get install synaptic.

Оновлення: підтримку Firefox 12 було додано у 2.22, а підтримку FF13 - у 2.23


Велике спасибі, заощадило мені досить багато часу.
Слотос,

1
selenium-webdriver Працює з FF12 для мене з 2.22.0.rc1
Gazler

10

Я отримав цю помилку, оскільки специфікації працювали на безголовому сервері. Це означало, що в браузері не було відображення для відображення.

У цій статті пропонується використовувати віртуальний X-сервер ( X Virtual Framebuffer ). Це дозволяє браузеру відображати на віртуальному дисплеї.

Встановіть так:

sudo apt-get install xvfb
sudo apt-get install x11-xkb-utils
sudo apt-get install xfonts-100dpi xfonts-75dpi xfonts-scalable xfonts-cyrillic

Потім запустіть специфікації з командою xvfb-runспереду.

xvfb-run bundle exec rake spec:features

Це була така відповідь, яка підвела мене до вищезазначеної статті. Це також дає альтернативні засоби використання Xvfb.


1
його "xfonts-кирилиця", останнього c не було
Федеріко Гауле Паломбарані

3

* / var / lib / gems / 1.9.1 / gems / selenium-webdriver-2.35.1 / lib / selenium / webdriver / firefox / launcher.rb: 79: у `connect_until_stable ': неможливо отримати стабільне з'єднання з firefox за 60 секунд (127.0.0.1:7055)(Selenium::WebDriver::Error::WebDriverError)*

У мене була та сама проблема, оновлення selenium-webdriverне допомогло (це була найновіша версія, яка вже доступна).

Виявляється, я намагався запустити свій сценарій із сеансу SSH, але $DISPLAYне був встановлений.

Проблему вирішено за допомогою:

export DISPLAY=:0

перед початком мого скрипта Ruby із сеансу SSH (використовуйте echo $DISPLAYв терміналі на сесії X, щоб дізнатись, що потрібно додати до цієї змінної).


2
bundle update selenium-webdriver

Плюс 1, у 2015 році це було найпростішим виправленням для мене. Немає возитися з номерами версій з жорстким кодуванням.
Майкл Деррант

1

Додавання `` запущеного '' дорогоцінного каменя до Gemfile мого додатка працювало з FF13.0, Capybara & Selenium v1.8.24.


1
Я підозрюю, що якби це вирішило проблему, це було б лише тому, що додавання launchy призвело до втягування пізнішої версії capybara (наприклад, як залежність).
Stefan Magnuson,

0

Це лише повторення того, що всі говорили вище. Я перевірив свій gemfile і переконався, що 'selenium-webdriver' не має жодних обмежень, а потім запустив 'оновлення пакета', і воно спрацювало.

Я працюю на ubuntux64 та Windows 8 x64

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.