Linux에서 Firefox를 헤드리스없이 어떻게 실행할 수 있습니까 (즉, libgtk-x11-2.0.so.0 필요 없음)?


17

Dreamhost 공유 호스팅이 있고 Selenium과 함께 사용하기 위해 Firefox 3.0을 헤드리스로 실행하려고합니다.

실행하려고 할 때 ( ~/local/bin/firefox/firefox) 다음과 같은 오류 메시지가 나타납니다.

error while loading shared libraries: libgtk-x11-2.0.so.0: cannot open shared object file: No such file or directory

이 공유 객체 파일이 없어도 Linux에서 Firefox를 어떻게 실행할 수 있습니까?

답변:


8

나는 이것이 오래된 질문이라는 것을 알고 있지만 Google에서 여기에 지시를 받고 최근 답변을 찾기 위해 잠시 동안 검색 해야하는 최신 답변을 추가하고 싶었습니다.

Firefox 57부터 Firefox를 설치하고 다음을 실행하여 헤드리스 모드로 실행할 수 있습니다.

firefox -headless http://test.com/

Firefox 개발자 문서는 여기를 참조하십시오.


우수 – 최신의 고품질 답변을 추가해 주셔서 감사합니다. 이것이 바로 스택 익스체인지의 목적입니다.
Paul D. Waite

14

필요한 모든 Gtk 라이브러리없이 Firefox를 실행할 수는 없지만 라이브러리를 설치하면 쉽게 해결할 수 있습니다. 일반적으로 패키지 관리 시스템을 통해 Firefox를 설치하면 필요한 모든 라이브러리를 가져옵니다.

Firefox를 정상적으로 실행하려면 X 서버 가 필요 합니다 (응용 프로그램이 컨텐츠를 빌드하는 데 사용하는 라이브러리 인 Gtk와는 대조적으로 창과 컨텐츠를 표시하는 부분 임). 그것은 일반적으로 서버에서 실행되지 않는 것입니다. X 서버없이 Firefox에서 할 수있는 일이 거의 없습니다. Selenium이 그 중 하나인지 모르겠습니다.

서버에서 Firefox를 실행하려면 "가상"X 서버를 실행하십시오. 간단한 한 Xvfb가이다 ( V irtual F의 RAME B uffer X의 서버). 그것은에서의 X.org 서버 배포 . 샘플 사용법 :

Xvfb :19 -screen 0 1024x768x16 &
export DISPLAY=:19
firefox &

1
훌륭합니다, Gilles를 응원합니다. 또한이 기사를 통해 Xvfb를 실행하는 데 도움이됩니다. alittlemadness.com/2008/03/05/running-selenium-headlessblog.kabisa.nl/2010/05/24/…
Paul D. Waite

7

당신은 할 수 없습니다; 그것은 X 및 Gtk + 클라이언트 라이브러리와 연결되어 있으며, 그것들없이 빌드 할 수 없다고 생각합니다.

Firefox 헤드리스 버전에서도 GTK +는 여전히 필요합니다 .


2

Selenium은 GUI 테스트 도구이므로 X없이 작동 할 수 있다고 믿기가 어렵습니다.

따라서 최고의 추측은 헤드리스 서버에 Gilles가 제안한 것과 같은 X 설치가 필요하다는 것입니다. 비슷한 대안이 많이 있습니다.


2

당신은 할 수 있습니다

  • 가상 프레임 버퍼에서 Firefox를 사용하십시오. xvfb-run -a firefox
  • SlimerJS 사용 xcfb와 (임베디드 게코 파이어 폭스에서 / 렌더링 엔진)
  • WebKit이 괜찮다면 GhostDriver 를 통한 디스플레이 및 셀레늄 지원없이 PhantomJS 를 내장 WebKit으로 사용 하십시오.

나는 당신이 xvfb가 아니라 'xvfb-run -a ...'를 의미한다고 생각합니까?
Kutzi

고마워 :-) 아마 그동안 바뀌었을 까?
flob
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.