Linux에서 Firefox 헤드리스를 실행하는 방법(예: libgtk-x11-2.0.so.0이 필요 없음)?

Linux에서 Firefox 헤드리스를 실행하는 방법(예: libgtk-x11-2.0.so.0이 필요 없음)?

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를 어떻게 실행할 수 있나요?

답변1

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

Firefox를 제대로 실행하려면 다음이 필요합니다.X 서버(이것은 애플리케이션이 콘텐츠를 구축하는 데 사용하는 라이브러리인 Gtk와 같은 것이 아니라 창과 그 콘텐츠를 표시하는 부분입니다.) 이는 일반적으로 서버에서 실행되지 않는 것입니다. X 서버 없이 Firefox에서 할 수 있는 일은 거의 없으며, Selenium이 그 중 하나인지는 모르겠습니다.

서버에서 Firefox를 실행하려면 "가상" X 서버를 실행하세요. 간단한 것은 Xvfb(V가상에프절뚝거리는두번째엑스섬기는 사람). 위치해있습니다X.org 서버 배포. 사용 예:

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

답변2

꽤 오래된 질문인 건 알지만, 구글의 안내로 여기까지 왔다가 답변을 찾기 위해 한참을 검색해야 했기 때문에 업데이트된 답변을 추가하고 싶었습니다.

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

firefox -headless http://test.com/

여기에서 Firefox 개발 문서를 참조하세요.

답변3

X 및 Gtk+ 클라이언트 라이브러리와 연결될 수 없으며, 그것들 없이는 빌드가 불가능하다고 생각합니다.

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

답변4

당신은 할 수

  • 가상 프레임 버퍼에서 Firefox 사용:xvfb-run -a firefox
  • 사용SlimerJS(Firefox의 Gecko/렌더링 엔진 내장) xcfb 사용,
  • 사용PhantomJS내장된 WebKit이므로 디스플레이나 셀레늄 지원이 필요하지 않습니다.유령 운전사- WebKit이 귀하에게 적합한지 여부.

관련 정보