Amazon EC2에서 Xvfb를 사용하여 Selenium Headless 실행
GUI가 없는 Amazon EC2 인스턴스에서 Selenium을 실행하려고 합니다. 필요한 패키지를 설치하고 Xvfb를 시작한 후 코드를 실행할 때 "오류: 디스플레이를 열 수 없습니다: :0" 오류가 발생합니다. 이 오류는 EC2 인스턴스에 그래픽 디스플레이가 부족하기 때문에 발생합니다.
이 문제를 해결하려면 가상 디스플레이 환경에서 Selenium을 시작할 수 있는 PyVirtualDisplay 또는 xvfbwrapper 활용을 고려해 보세요. 이러한 모듈은 헤드리스 X 서버를 생성하여 물리적 GUI 없이 WebDriver 테스트를 실행할 수 있도록 합니다.
PyVirtualDisplay Method
from pyvirtualdisplay import Display from selenium import webdriver display = Display(visible=0, size=(800, 600)) display.start() browser = webdriver.Firefox() browser.get('http://www.google.com') print browser.title browser.quit() display.stop()
이 코드 조각은 PyVirtualDisplay를 사용하여 헤드리스 서버를 시작합니다. 가상 디스플레이 환경. 이 환경 내에서 Firefox 브라우저가 실행되고 지정된 URL로 이동합니다. 페이지 제목에 접근한 후 브라우저가 종료되고 가상 디스플레이가 닫힙니다.
Xvfbwrapper 메서드
from xvfbwrapper import Xvfb vdisplay.start() browser = webdriver.Firefox() browser.get('http://www.google.com') print browser.title browser.quit() vdisplay.stop()
이 코드는 Xvfbwrapper를 사용하여 가상 디스플레이를 시작합니다. . PyVirtualDisplay 예제와 유사하게 Firefox 브라우저가 가상 디스플레이 내에서 실행되고, 페이지를 방문하고, 브라우저와 디스플레이가 종료됩니다.
컨텍스트 관리자 방법
from xvfbwrapper import Xvfb with Xvfb() as xvfb: browser = webdriver.Firefox() browser.get('http://www.google.com') print browser.title browser.quit()
이 방법은 컨텍스트 관리자를 사용하여 가상 디스플레이를 자동으로 시작하고 중지합니다. 컨텍스트 블록 내에서 Firefox 브라우저가 실행되고 페이지가 방문되며 브라우저가 닫힙니다.
이러한 방법을 채택하면 GUI 없이 Amazon EC2 인스턴스에서 Selenium 헤드리스 테스트를 원활하게 실행하여 자동화된 테스트를 활성화할 수 있습니다. 효율적으로 배포할 수 있습니다.
위 내용은 Amazon EC2에서 Xvfb를 사용하여 Selenium Headless를 실행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!