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).
[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.
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
brew install chromedriver
Capybara.javascript_driver = :selenium_chrome
(instead of setting current_driver
.)
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
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.
*/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).
bundle update selenium-webdriver
Adding the 'launchy' gem to my application's Gemfile worked with FF13.0, Capybara & Selenium v1.8.24.
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
Success story sharing
selenium-webdriver
and dobundle update selenium-webdriver
when the version needs updating.