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-webdriver
2.25.0
selenium-webdriver
할 bundle update selenium-webdriver
때 수행 합니다.
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
brew install chromedriver
Capybara.javascript_driver = :selenium_chrome
(대신 설정 current_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 $DISPLAY
X 세션의 터미널에서이 변수에 무엇을 입력해야하는지 확인하십시오).
bundle update selenium-webdriver
내 애플리케이션의 Gemfile에 'launchy'gem을 추가하면 FF13.0, Capybara & Selenium v1.8.24에서 작동했습니다.