Wenn Sie den Selenium-Webtreiber mit Python verwenden, können Sie PyVirtualDisplay verwenden, einen Python-Wrapper für Xvfb und Xephyr.
PyVirtualDisplay benötigt Xvfb als Abhängigkeit. Installieren Sie unter Ubuntu zuerst Xvfb:
sudo apt-get install xvfb
Installieren Sie dann PyVirtualDisplay von Pypi:
pip install pyvirtualdisplay
Beispiel eines Selenium-Skripts in Python in einem kopflosen Modus mit 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()
BEARBEITEN
Die erste Antwort wurde 2014 veröffentlicht und jetzt stehen wir kurz vor 2018. Wie alles andere haben auch die Browser Fortschritte gemacht. Chrome verfügt jetzt über eine vollständig kopflose Version, bei der keine Bibliotheken von Drittanbietern mehr zum Ausblenden des UI-Fensters verwendet werden müssen. Der Beispielcode lautet wie folgt:
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()
in Ihrem Code tun , folgen Sie meiner Antwort hier: stackoverflow.com/a/23898148/1515819