Nếu bạn đang sử dụng trình điều khiển web Selenium với Python, bạn có thể sử dụng PyVirtualDisplay, trình bao bọc Python cho Xvfb và Xephyr.
PyVirtualDisplay cần Xvfb làm phụ thuộc. Trên Ubuntu, đầu tiên cài đặt Xvfb:
sudo apt-get install xvfb
sau đó cài đặt PyVirtualDisplay từ Pypi:
pip install pyvirtualdisplay
Tập lệnh Selenium mẫu trong Python ở chế độ không đầu với PyVirtualDisplay:
#!/usr/bin/env python
from pyvirtualdisplay import Display
from selenium import webdriver
display = Display(visible=0, size=(800, 600))
display.start()
# now Firefox will run in a virtual display.
# you will not see the browser.
browser = webdriver.Firefox()
browser.get('http://www.google.com')
print browser.title
browser.quit()
display.stop()
EDIT
Câu trả lời ban đầu đã được đăng vào năm 2014 và bây giờ chúng tôi đang ở đỉnh cao của năm 2018. Giống như mọi thứ khác, các trình duyệt cũng đã tiến bộ. Chrome hiện đã có phiên bản hoàn toàn không đầu, giúp loại bỏ nhu cầu sử dụng bất kỳ thư viện bên thứ ba nào để ẩn cửa sổ UI. Mã mẫu như sau:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
CHROME_PATH = '/usr/bin/google-chrome'
CHROMEDRIVER_PATH = '/usr/bin/chromedriver'
WINDOW_SIZE = "1920,1080"
chrome_options = Options()
chrome_options.add_argument("--headless")
chrome_options.add_argument("--window-size=%s" % WINDOW_SIZE)
chrome_options.binary_location = CHROME_PATH
driver = webdriver.Chrome(executable_path=CHROMEDRIVER_PATH,
chrome_options=chrome_options
)
driver.get("https://www.google.com")
driver.get_screenshot_as_file("capture.png")
driver.close()
driver = webdriver.Firefox()
mã của mình, hãy làm theo câu trả lời của tôi tại đây: stackoverflow.com/a/23898148/1515819