[ruby-on-rails] 60 초 내에 안정적인 파이어 폭스 연결을 얻을 수 없음 (127.0.0.1:7055)

rspec 테스트를 실행할 때 다음 오류가 발생합니다.

레일에서 60 초 (127.0.0.1:7055) 내에 안정적인 파이어 폭스 연결을 얻을 수 없음

최신 루비 (1.9.2) 및 파이어 폭스 (6.0) 사용

rspec-rails, capybara 및 기타 여러 보석을 사용하지만 문제가되지 않는 것 같습니다. 이 테스트는 다른 환경 (리눅스)에서 잘 실행됩니다.



답변

[업데이트 -2015 에도이 문제를 해결할 수 있습니다. | mdurrant |]

나는 최근에이 문제를 발견했다 .

올바른 셀레늄 웹 드라이버를 사용하려면 capybara v1.0.1로 업그레이드해야합니다.

내가 추가했는지 확인하려면 :

gem 'selenium-webdriver', '2.25.0'

내 Gemfile에서.

중요 사항 : 보석 업데이트하고, 새로운 버전의 파이어 폭스 이후의 모든 버전에 대해 발표했다. 현재 Firefox 15 를 지원하려면 버전 이 필요합니다 .
selenium-webdriver2.25.0


답변

Ubuntu에서 Firefox 10과 함께 작동하지 못했습니다. 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


답변

Firefox 12에서이 문제를 경험 한 사람에게는 현재 셀레늄 웹 드라이버 (2.21)가 FF12를 지원하지 않습니다. 내가 찾은 유일한 해결책은 selenium-webdriver가 FF12 지원으로 업데이트 될 때까지 Firefox를 계속 사용하는 것입니다.

Firefox 패키지를 선택하고 패키지 메뉴> 강제 버전을 클릭하고 이전 버전을 선택하여 시냅스 패키지 관리자를 사용하여 수행 할 수 있습니다. 그런 다음 변경 사항을 적용하십시오.

synaptic이없는 경우 apt-get install synaptic으로 설치할 수 있습니다.

업데이트 : Firefox 12 지원은 2.22에서 추가되었고 FF13 지원은 2.23에서 추가되었습니다.


답변

사양이 헤드리스 서버에서 실행되고 있었기 때문에이 오류가 발생했습니다. 이것은 브라우저가 렌더링 할 디스플레이가 없음을 의미합니다.

이 기사 에서는 가상 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

이것은 위의 기사로 이끄는 SO 대답이었습니다 . 또한 Xvfb를 사용하는 대체 수단을 제공합니다.


답변

* / var / lib / gems / 1.9.1 / gems / selenium-webdriver-2.35.1 / lib / selenium / webdriver / firefox / launcher.rb : 79 : in`connect_until_stable ‘: 60 초 내에 안정적인 firefox 연결을 얻을 수 없습니다. (127.0.0.1:7055)(Selenium::WebDriver::Error::WebDriverError)*

나는 똑같은 문제가 있었는데, 업데이트가 selenium-webdriver도움이되지 않았습니다 (이미 사용 가능한 최신 버전이었습니다).

SSH 세션에서 스크립트를 실행하려고했지만 $DISPLAY설정되지 않은 것으로 나타났습니다.

문제는 다음과 같이 수정되었습니다.

export DISPLAY=:0

SSH 세션에서 Ruby 스크립트를 시작하기 전에 ( echo $DISPLAYX 세션의 터미널에서이 변수에 무엇을 입력해야하는지 확인하십시오).


답변

bundle update selenium-webdriver


답변

내 애플리케이션의 Gemfile에 ‘launchy’gem을 추가하면 FF13.0, Capybara & Selenium v1.8.24에서 작동했습니다.