60 초 내에 안정적인 Firefox 연결을 얻을 수 없음 (127.0.0.1:7055)
시나리오를 테스트하는 동안 테스트를 cucumber실행할 때 다음 오류가 발생 rspec합니다.
60 초 안에 안정적인 파이어 폭스 연결을 얻을 수 없음 (127.0.0.1:7055) (Selenium :: WebDriver :: Error :: WebDriverError)
ruby (1.9.2) selenium-webdriver (2.27.2)및 사용firefox (19.0)
rspec-rails (2.12.1), capybara (2.0.2)및 기타 여러 보석을 사용하여 보석을 추가 launchy했지만 문제가되지 않는 것 같습니다. 그리고 나는 Windows 7.
나는 (리눅스에서) 같은 문제가 있었다. 다음으로 수정 :
gem update selenium-webdriver
이제 루비 1.9.3-p286, selenium-webdriver 2.29.0, firefox 18.0 및 rspec-rails 2.9.0, capybara 1.1.2 및 capybara-webkit 0.12.1을 사용하고 있습니다.
안전을 위해 selenium-webdriver 2.29.0을 Gemfile에 추가했습니다.
Selenium Webdriver는 Firefox를 따라 잡기 위해 자주 업데이트되는 것 같습니다. 하지만 어떤 버전이 필요한지 어떻게 알 수 있습니까? 이 절차는 버전이 변경 되어도 작동하기를 바랍니다.
Selenium Client & WebDriver Language Bindings 까지 아래로 스크롤 합니다 .
변경 로그에서 Firefox 버전에 필요한 Selenium 버전을 확인하십시오.
Bundler를 사용하는 경우 실행하여 사용중인 bundle show selenium-webdriver버전을 확인하십시오. 예를 들어 2.35.0으로 업데이트하려면 다음 줄을에 추가하십시오 Gemfile.
gem 'selenium-webdriver', '2.35.0'
그런 다음 실행 bundle update하여 설치하십시오. Spork를 사용하는 경우 테스트를 다시 실행하기 전에 다시 시작해야합니다.
Update One StackOverflow 답변 은 변경 로그가 seleniumhq.org보다 소스 코드 저장소에서 더 빨리 업데이트 될 수 있음을 나타냅니다. Ruby 용 리포지토리 변경 로그는 https://github.com/SeleniumHQ/selenium/blob/master/rb/CHANGES 입니다.
Firefox 다운 그레이드
Ubuntu 12.04에서 Firefox를 다운 그레이드해야하는 경우이 답변 은 Firefox 20으로 돌아가는 방법을 설명합니다. Firefox의 모든 버전으로 전환하는 방법에 대한보다 일반적인 설명은 여기에 있습니다 . 그런 다음 이 답변 을 사용 하여 Selenium이 최신 버전의 Firefox에서 작동하는 업데이트를 릴리스 할 때까지 Firefox 업데이트를 보류하십시오.
제 경우에는 Firefox를 다운 그레이드하여 Selenium Webdriver가 최근에 최신 버전을 처리하도록 업데이트되었음을 확인 했으므로 먼저 Selenium 업데이트를 확인하십시오!
bundle update selenium-webdriver
CI 서버에서 이것을 만났고 Firefox에 사용할 디스플레이가 없기 때문이라는 것을 알았습니다. 나는 셀레늄 웹 드라이버가 더 이상의 개입없이 작동 할 것이라고 생각했지만 이것은 사실이 아닙니다.
Xvfb를 믹스에 추가하면 작동합니다.
Cucumber 기능을 실행하는 Rails의 경우 :
gem 'headless'
그런 다음 features / support / env.rb에서
Before do
if Capybara.current_driver == :selenium
require 'headless'
headless = Headless.new
headless.start
end
end
이 오류는 셀레늄과 파이어 폭스 버전이 호환되지 않을 때 발생합니다.
두 가지 옵션이 있습니다.
셀레늄 업데이트 :
gem update selenium-webdriver그래도 실패하면 셀레늄이 최신 버전으로 업데이트되지 않은 것입니다.
파이어 폭스 버전 다운 그레이드 :
sudo apt-get purge firefox다운로드 할 수있는 패키지를 보려면
apt-cache showpkg firefoxsudo apt-get install firefox=#older_version#
나를 위해 일한 마법의 조합은 Firefox 19.0과 셀레늄 웹 드라이버 2.32.1 (작성 당시 최신)이었습니다. Firefox 20.x 및 21.x가 작동하지 않았습니다. Firefox를 다운 그레이드해야했습니다. 또한 (적어도 Mac OS에서는) FireFox 메뉴-> Firefox 정보로 이동하면 자동으로 최신 릴리스로 업그레이드됩니다. 그러지 마.
위의 내용이 제 경우와 같이 작동하면이 기회를주십시오.
한 시스템에서 다른 시스템이 아닌 시간 초과 오류가 발생했습니다. 두 시스템은 모두 동일한 버전을 실행하는 씬 클라이언트입니다. 그래서 호환되지 않는 파이어 폭스 버전을 배제했습니다 (오류가 한 시스템에서 발생하고 다른 시스템에서 발생하지 않음)
헤드리스가 사용하는 포트에 문제가 있음이 밝혀졌습니다. 해당 포트를 사용하는 다른 프로세스가 있습니다.
아래는 나를 위해 문제를 해결
했습니다. .zshenv 파일 에 다음 줄을 추가 한 다음 터미널에서
export XVFB_DISPLAY='new-port-number'
명령을 실행 zsh하여 변경 사항을 설정하십시오.
다른 사용자에게 내 자신을 고소한 터미널에서 irb를 시작할 때이 문제가 발생했습니다. 해당 사용자로 irb를 실행하면이 오류가 발생합니다. 그러나 내가 루트로 실행하면 아닙니다. 그리고 로그인 한 사용자가 소유 한 셸로 다시 나갈 때가 아닙니다.
저에게는 이미 보석을 업데이트했지만 번들을 업데이트해야했습니다.
powershell에서 디렉터리로 이동 한 다음 번들을 업데이트합니다.
cd D:\Projects\LazyAutomation
bundle update
Vagrant를 사용하는 모든 사람을 위해 로그인하면 XServer를 활성화하면 firefox가 올바르게 시작할 수 있으므로 문제가 해결되었습니다. 방랑 ssh--X
Firefox를 다운 그레이드합니다.
이미 gem 'headless'gem을 사용 하고 업데이트하는 것이 현재로서는 바람직하지 않다면 파이어 폭스를 다운 그레이드해야합니다.
For Ubuntu (but other linux distros would be pretty similar) you should:
Remove firefox that comes with Ubuntu latest versions
sudo apt-get purge firefox
You can complement with removing some associated data as explained here
Now, install an older version of Firefox. For me, version 42.0 worked (as our Travis.ci uses it)
$ export FIREFOX_SOURCE_URL='https://download.mozilla.org/?product=firefox-42.0&lang=en-US&os=linux64'
$ wget --no-verbose -O /tmp/firefox-42.0.tar.bz2 $FIREFOX_SOURCE_URL
$ tar xvC ~/. -f /tmp/firefox-42.0.tar.bz2
ln -s ~/firefox/firefox ~/bin/firefox
Open a new terminal tab and run your cucumber specs/selenium specs.
You can now download the newest version of Firefox and create a .desktop file in /usr/share/applications/ to access it from the dock. And let Selenium find by default the older version. Take this for reference
After following ballPointPenguin's suggestion, I can now use watir-webdriver to retrieve local files, or files in my local apache install's htdocs directory, or files on the web:
1) file:///Users/me/jquery_programs/1.htm
2) 'http://localhost:8080/my.html'
3) 'http://www.google.com'
require 'watir-webdriver'
browser = Watir::Browser.new :firefox
browser.goto 'http://localhost:8080/my.html'
Before updating, I was getting the error:
`connect_until_stable': unable to obtain stable firefox connection in 60 seconds (127.0.0.1:7055) (Selenium::WebDriver::Error::WebDriverError)
'program story' 카테고리의 다른 글
| Windows에서 동시에 실행되는 여러 Java 버전 (0) | 2020.10.22 |
|---|---|
| 커스텀 Python 목록 정렬 (0) | 2020.10.21 |
| -단일 분기 클론을 "실행 취소"하려면 어떻게합니까? (0) | 2020.10.21 |
| Sublime Text의 모든 줄에 커서를 놓을 수 있습니까? (0) | 2020.10.21 |
| Visual Studio에서 경로를 어떻게 설정합니까? (0) | 2020.10.21 |