2011-04-25 3 views
6

루비 스크립트를 사용하여 헤드리스 테스트를 수행하려고합니다. 기본적으로 나는 display : 1에서 Xvfb를 실행 중이고 watir-webdriver를 사용하여 Watir::Browser.new(:firefox)을 실행한다.Ruby에서 NON-root 사용자로 Xvfb에서 Selenium :: WebDriver :: Firefox 실행

루트로 스크립트를 실행하면 효과적입니다. x11vnc를 실행하고 스크립트를 실행하여 브라우저를 실행하고 스크립트와 상호 작용할 수 있습니다.

문제는 Rails 응용 프로그램에서이 루비 스크립트를 호출 할 수 있어야하고 루트 권한으로 실행하지 않아야한다는 것입니다 ... 일반 사용자로 명령 줄에서 스크립트를 실행하려고하면 Xvfb가 실행됩니다 up on : 1, Watir은 브라우저를 시작하지 않을 것입니다 ... 결국 60 초가 지나면 시간이 끝납니다. VNC를 통해 연결하면 마우스 커서가있는 검은 색 화면이 나타납니다.

Xvfb를 시작한 다음 firefox --display=:1을 시작하면 브라우저가 시작되므로 Selenium 문제 여야합니다. 맞습니까?

간단히 말해서 : Selenium/Webdriver는 루트로 스크립트를 실행하지 않는 한 Xvfb에서 브라우저를 시작하지 않습니다.

+0

+1 한 번 해답을 추가하면 +1 –

+0

@ user724205 답변은 질문에 복사되지 않고 답변으로 추가되어야합니다. –

답변

3
  • 루비 래퍼를 살펴한다이 해결 - EDIT * - 미안 해요 질문에 대답 할 수 없습니다,하지만 분명히 내 계정이 아직 그렇게 너무 새로운 기능입니다.

해결! 확실한 확인) 당신은 질문 ..., 내가 할 필요가 몇 가지있을 이유를 알고 싶은 사람들을 위해

...

1을 요청했습니다 후에 이런 일을 스스로 해결하는 경향이 얼마나 놀라운 사용자가 작업 홈 디렉토리를 가지고 있습니다 (www 데이터는 기본적으로 ... 루트 디렉토리가 아닙니다)

2) 명령 행에서 Xvfb를 시작한 다음, 명령 행에서 firefox를 시작하십시오 스크립트 내에서) - 사용자 홈 폴더에 일반적인 .dbus, .gconf 등의 폴더를 채 웁니다.

3) 막대한 지연이 발생하고 th "firefox-bin에 대한 구성 정보를로드하거나 저장하는 중 오류가 발생했습니다"라는 오류 메시지가 나타나면 사용자 홈 디렉토리의 .dbus 폴더를 삭제하십시오.

4) 다시 설정하십시오. 전에 오류가 발생했습니다.

5) 스크립트를 다시 실행하십시오.

이 기능은 저에게 매력적 이었으므로 웹 응용 프로그램 내에서 Xvfb 및 watir-webdriver를 실행하는 데 비슷한 문제가 발생하는 경우 시도해보십시오.

손쉬운 베스트 제품에 기여해 주신 모든 분들에게 감사드립니다. & 웹상의 사이트 ...이 장소는 내가 언급하는 것보다 더 많은 시간을 절약 할 수있었습니다.

참고 : 사용자가 원래 답변을 게시하는 방법을 알아낼 수 없기 때문에이 질문에 개정 된 내용을 입력했습니다.그것은 나중에 잘 의미있는 사람에 의해 질문에서 편집되었지만 대답으로 추가되지는 않았습니다.

1

안녕 link 님이 도움이 될지 모르겠다. 이것은 나를 많이 도왔다. 시작/재부팅시 자동으로 watir-webdriver를 실행할 필요가있었습니다. 그것은 저에게 도움이되었습니다 (주석도 읽었습니다).

관련 문제