In Django(Python), you can take the screenshots of Django Admin on headless Google Chrome, Microsoft Edge and Firefox as shown below. *I use pytest-django and selenium and my answer explains how to do this on the headless browsers together:
<Google Chrome>
import pytestfrom selenium import webdriverdef take_screenshot(driver, name): os.makedirs(os.path.join("screenshot", os.path.dirname(name)), exist_ok=True) driver.save_screenshot(os.path.join("screenshot", name))def test_1(live_server): options = webdriver.ChromeOptions() options.add_argument("--headless=new") driver = webdriver.Chrome(options=options) driver.set_window_size(1024, 768) driver.get(("%s%s" % (live_server.url, "/admin/"))) take_screenshot(driver, "admin/chrome.png") assert "Log in | Django site admin" in driver.title
<Microsoft Edge>
import pytestfrom selenium import webdriverdef take_screenshot(driver, name): os.makedirs(os.path.join("screenshot", os.path.dirname(name)), exist_ok=True) driver.save_screenshot(os.path.join("screenshot", name))def test_1(live_server): options = webdriver.EdgeOptions() options.add_argument("--headless=new") driver = webdriver.Edge(options=options) driver.set_window_size(1024, 768) driver.get(("%s%s" % (live_server.url, "/admin/"))) take_screenshot(driver, "admin/edge.png") assert "Log in | Django site admin" in driver.title
<Firefox>
import pytestfrom selenium import webdriverdef take_screenshot(driver, name): os.makedirs(os.path.join("screenshot", os.path.dirname(name)), exist_ok=True) driver.save_screenshot(os.path.join("screenshot", name))def test_1(live_server): options = webdriver.FirefoxOptions() options.add_argument("-headless") driver = webdriver.Firefox(options=options) driver.set_window_size(1024, 768) driver.get(("%s%s" % (live_server.url, "/admin/"))) take_screenshot(driver, "admin/firefox.png") assert "Log in | Django site admin" in driver.title