80
votes

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).

8

8 Answers

99
votes

[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.

17
votes

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
12
votes

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

10
votes

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.

3
votes

*/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
votes
bundle update selenium-webdriver
1
votes

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

0
votes

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