프로덕션 서버를 Ubuntu 데스크탑 10.04에서 Ubuntu 서버 12.04로 업그레이드하는 것을 고려하고 있습니다.
Selenium Web Driver와 같은 현재 데스크톱 OS에서 실행되는 다양한 서비스가 있습니다. 내 질문은 Selenium Web Driver를 CLI 기반 시스템에서 실행할 수 있습니까?
내 즉각적인 생각은 Firefox에 의존하기 때문에 할 수 없다는 것입니다. 그러나 누군가가 나를 틀렸다는 것을 증명하고 싶습니다!
답변
당신이 찾고있는 것은 헤드리스 브라우저.
예, Firefox에서 헤드리스로 Selenium을 실행할 수 있습니다. 팔로우 할 수 있는 게시물 이 있습니다.
다음은 Xvfb를 설정하는 요약 단계입니다.
#install Xvfb
sudo apt-get install xvfb
#set display number to :99
Xvfb :99 -ac &
export DISPLAY=:99
#you are now having an X display by Xvfb
답변
이제 Chrome에는 헤드리스 모드가 있습니다.
op = webdriver.ChromeOptions()
op.add_argument('headless')
driver = webdriver.Chrome(options=op)
답변
예. HTMLUnitDriver
대신 FirefoxDriver
webdriver를 시작하는 동안 사용할 수 있습니다 . 이것은 헤드리스 브라우저 설정입니다. 자세한 내용은 여기에서 확인할 수 있습니다 .
답변
헤드리스 브라우저 지원을 원하는 경우 채택 할 수있는 또 다른 접근 방식이 있습니다.
https://github.com/detro/ghostdriver
Selenium Conference에서 발표되었으며 아직 개발 중입니다. PhantomJS를 브라우저로 사용하고 HTMLUnitDriver보다 훨씬 낫습니다. 아직 스크린 샷은 없지만 아직 개발 중입니다.
답변
선택 사항은 다음 pyvirtualdisplay
과 같이 사용하는 것입니다.
from pyvirtualdisplay import Display
display = Display(visible=0, size=[800, 600])
display.start()
#do selenium job here
display.close()
더 짧은 버전은 다음과 같습니다.
with Display() as display:
# selenium job here
이것은 일반적으로 파이썬 캡슐화이며 xvfb
어떻게 든 더 편리합니다.
그건 그렇고, PhantomJS
헤드리스 브라우저 이지만 사용하면 창이 열리지 PhantomJS
않지만 여전히 작동하려면 GUI 환경이 필요 합니다.
헤드리스 모드 (퍼티 연결 콘솔) PhantomJS()
대신 사용할 때 오류 코드 -6이 발생했습니다 Firefox()
. 그러나 데스크탑 환경에서는 모든 것이 정상입니다.
답변
업데이트 : 더 이상 헤드리스 Firefox를 실행하기 위해 XVFB가 필요하지 않습니다. Linux의 Firefox v55 + 및 Windows / Mac의 Firefox v56 +는 이제 헤드리스 실행을 지원합니다.
여기에 몇 가지 사용 방법 문서를 추가했습니다.
https://developer.mozilla.org/en-US/Firefox/Headless_mode#Selenium_in_Java