80

Getting the following error when running rspec tests

unable to obtain stable firefox connection in 60 seconds (127.0.0.1:7055) in rails

Using latest ruby (1.9.2) and firefox (6.0)

Using rspec-rails, capybara and several other gems, but they don't seem to be a problem. These tests run fine in another environment (linux).

0

8 Answers 8

98

[Update - this can (was for me) still be a fix for this issue in 2015 |mdurrant|]

I came across this problem lately.

You should upgrade to capybara v1.0.1 to have a correct selenium webdriver.

To be sure I added:

gem 'selenium-webdriver', '2.25.0'

in my Gemfile.

Important note:
The selenium-webdriver gem is updated, and a new version released, for every subsequent version of Firefox. Presently, version 2.25.0 is needed to support Firefox 15.

5
  • 11
    I actually did 'bundle update selenium-webdriver', but either way the goal is to update selenium-webdriver gem to 2.5.0. The tests ran fine after the update.
    – Srini K
    Commented Sep 1, 2011 at 16:00
  • just did. sorry for the delay.
    – Srini K
    Commented Sep 8, 2011 at 21:26
  • 1
    had to do - gem 'selenium-webdriver', '>= 2.5.0' - for firefox 11. this got me gem version 2.10...
    – ZX12R
    Commented Mar 19, 2012 at 12:33
  • 7
    And selenium-webdriver 2.31.0 is needed for Firefox 19. Seems like the answer is always, "get the latest selenium-webdriver."
    – jwadsack
    Commented Mar 26, 2013 at 22:06
  • I always just leave the version number off of selenium-webdriver and do bundle update selenium-webdriver when the version needs updating. Commented Mar 4, 2015 at 21:22
17

I couldn't get it to work with Firefox 10 on Ubuntu. Switching to Chrome helped.

Install Chrome Driver.

spec_helper.rb:

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

In your spec:

Capybara.current_driver = :selenium_chrome
... tests ...
Capybara.use_default_driver
3
  • 5
    if you're on a mac you can simply brew install chromedriver
    – Will
    Commented Jun 14, 2013 at 20:06
  • Worked for me, except did like so: Capybara.javascript_driver = :selenium_chrome (instead of setting current_driver.)
    – Tim Scott
    Commented Jan 4, 2015 at 21:11
  • Switching to Chrome helped you establish a stable Firefox connection? Fascinating. :)
    – D. Patrick
    Commented Feb 8, 2016 at 17:18
12

For anybody experiencing this with Firefox 12, the current selenium webdriver (2.21) doesn't support FF12. The only solution I have found is to continue using Firefox is to downgrade Firefox, until selenium-webdriver is updated with FF12 support.

This can be done using synaptic package manager by selecting the Firefox package, and clicking Package menu > Force Version > select an earlier version. Then apply changes.

If you don't have synaptic, you can install it with apt-get install synaptic.

Update: Firefox 12 support was added in 2.22 and FF13 support was added in 2.23

1
  • 1
    selenium-webdriver Works with FF12 for me with 2.22.0.rc1
    – Gazler
    Commented May 22, 2012 at 10:39
10

I was getting this error because the specs were being run on a headless server. This meant there was no display for the browser to render onto.

This article suggests using a virtual X server (X Virtual Framebuffer). This allows the browser to render in a virtual display.

Install like so:

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

Then run the specs with the command xvfb-run in front.

xvfb-run bundle exec rake spec:features

This was the SO answer that lead me to the above article. It also gives an alternative means to use Xvfb.

1
3

*/var/lib/gems/1.9.1/gems/selenium-webdriver-2.35.1/lib/selenium/webdriver/firefox/launcher.rb:79:in `connect_until_stable': unable to obtain stable firefox connection in 60 seconds (127.0.0.1:7055)(Selenium::WebDriver::Error::WebDriverError)*

I had the same problem, updating the selenium-webdriver did not help (it was the most current version available already).

It turns out, that I tried to run my script from an SSH session, and $DISPLAY was not set.

The problem was fixed with:

export DISPLAY=:0

before starting my Ruby script from the SSH session (use echo $DISPLAY in a terminal on the X session to find out what you need to put into this variable).

2
bundle update selenium-webdriver
1
  • Plus 1, In 2015 this was the easiest fix for me. No messing with hard coding versions numbers. Commented May 3, 2015 at 19:32
1

Adding the 'launchy' gem to my application's Gemfile worked with FF13.0, Capybara & Selenium v1.8.24.

1
  • 1
    I suspect that if this fixed the issue, it would only be because adding launchy caused a later version of capybara to be pulled in (e.g. as a dependency). Commented Sep 16, 2014 at 2:06
0

This is only a reiteration of what everyone was saying above. I checked my gemfile and made sure that the 'selenium-webdriver' didn't have any limits on it then ran a 'bundle update' and it worked.

I'm on ubuntux64 and windows 8 x64

Not the answer you're looking for? Browse other questions tagged or ask your own question.