가상화면을 이용하면 가상화면에서 브라우저를 실행하고 스크린샷을 찍을 수 있어 현재 화면 표시에 영향을 주지 않습니다.
특정 구현에서는 Xvfb 및 pyvirtualdisplay 라이브러리를 사용할 수 있습니다. Xvfb는 메모리에 가상 화면을 생성하는 가상 X11 서버이고, pyvirtualdisplay는 Python 코드에서 Xvfb를 시작하고 제어할 수 있는 Python 라이브러리입니다.
다음은 예시입니다.
from pyvirtualdisplay import Display from selenium import webdriver # 启动虚拟屏幕 display = Display(visible=0, size=(800, 600)) display.start() # 创建浏览器实例并访问页面 browser = webdriver.Chrome() browser.get('https://www.google.com') # 截图并保存 browser.save_screenshot('screenshot.png') # 关闭浏览器和虚拟屏幕 browser.quit() display.stop()
이 예시에서는 먼저 가상 화면을 시작한 다음 Chrome 브라우저 인스턴스를 생성하고 Google 홈페이지를 방문합니다. 그런 다음 save_screenshot 메소드를 사용하여 페이지의 스크린샷을 찍어 로컬 파일에 저장합니다. 마지막으로 브라우저와 가상 화면을 닫았습니다.
가상 화면의 크기는 브라우저 창 크기와 동일해야 합니다. 그렇지 않으면 스크린샷이 불완전할 수 있습니다. 코드에서는 가상 화면의 크기를 800x600으로 지정하고 있으며 실제 상황에 따라 수정할 수 있습니다.
Q&A
작업이 너무 많으면 많은 가상 화면을 활성화할 필요가 없습니다. 이렇게 하면 메모리가 많이 소모되나요? 네, 가상 화면을 여러 개 열면 많은 메모리를 차지하게 됩니다.
Xvfb
import os import time from selenium import webdriver from pyvirtualdisplay import Display from PIL import Image # 设置虚拟屏幕分辨率 display = Display(visible=0, size=(1920, 1080)) display.start() # 启动浏览器 browser = webdriver.Chrome() # 打开网页 browser.get('https://www.baidu.com') # 等待页面加载完成 time.sleep(5) # 截图 browser.save_screenshot('screenshot.png') # 退出浏览器 browser.quit() # 关闭虚拟屏幕 display.stop() # 打开截图 Image.open('screenshot.png').show()
이 예에서는 pyvirtualdisplay 라이브러리를 사용하여 가상 화면을 만들고, Chrome 브라우저 및 Selenium을 사용하여 웹 페이지와 스크린샷을 열고, 마지막으로 Pillow 라이브러리를 사용하여 엽니다. 스크린샷. 이 방법은 Linux 또는 macOS 환경에서 실행해야 합니다.
위 내용은 Python에서 셀레늄 스크린샷을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!