If a Selenium screenshot stops at the bottom of the visible browser area, check which capture method you called: many standard screenshot methods capture the current window, not the entire document. For a full-page image, Selenium’s Python Firefox driver documents dedicated full-document methods. For a single component, use an element screenshot instead. The right fix depends on the capture scope you need and the browser and language binding you use.
First check what your screenshot is meant to capture
“Screenshot” can mean the visible browser window, the full page document, or one element. These are separate capture scopes in Selenium’s documentation.
As an Amazon Associate I earn from qualifying purchases.
- Viewport: the currently visible browser area. Selenium’s Python Chromium API describes standard methods such as
save_screenshot()as saving an image of the current window. A viewport-sized image can be expected behavior. - Full document: the page from top to bottom, including content beyond the current viewport. Selenium’s Python Firefox API documents dedicated full-document methods.
- Element: a particular component, such as a chart or form. Selenium’s WebDriver documentation exposes element screenshots separately from screenshots of a browsing context.
Decide which of these you need before changing window size or swapping methods. The documented full-page method names below are specific to Selenium’s Python Firefox API; the documentation cited here does not establish one equivalent method for every browser and language binding.
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Fix the driver behind crashes, sound loss and screen glitches3Repair Windows errors before they cause bigger problemsTake a full-page screenshot with Selenium Python and Firefox
The Selenium 4.50.0 Python Firefox API documents get_full_page_screenshot_as_file() and save_full_page_screenshot() for saving a full-document screenshot. For example:
#1 Best Overall
from selenium import webdriver
driver = webdriver.Firefox()
try:
driver.get("https://example.com")
saved = driver.get_full_page_screenshot_as_file("page.png")
if not saved:
raise RuntimeError("Selenium did not save the full-page screenshot")
finally:
driver.quit()
Use the Firefox driver and the matching Python binding API. Check the installed binding’s current reference before applying these method names to a different browser or language. Selenium also documents save_full_page_screenshot("page.png") as a Firefox full-document method; use the form documented by the API version installed in your environment.
Capture the current window or one element
Current-window screenshot in Chromium
This example saves the current window, not a guaranteed full-document image. Selenium’s Python Chromium API documents this screenshot family as capturing the current window.
Rank #2
from selenium import webdriver
driver = webdriver.Chrome()
try:
driver.get("https://example.com")
driver.save_screenshot("viewport.png")
finally:
driver.quit()
Screenshot of a specific element
If the test needs only a component, use Selenium’s element screenshot API rather than capturing the page and cropping it afterward. The WebDriver documentation treats element screenshots as a distinct option.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
from selenium import webdriver
driver = webdriver.Firefox()
try:
driver.get("https://example.com")
element = driver.find_element("css selector", "main")
element.screenshot("main.png")
finally:
driver.quit()
Remove the accidental leading space before driver = if copying the snippet literally; the complete, correctly indented version is:
Rank #3
from selenium import webdriver
driver = webdriver.Firefox()
try:
driver.get("https://example.com")
element = driver.find_element("css selector", "main")
element.screenshot("main.png")
finally:
driver.quit()
Why maximizing the browser may not fix it
driver.maximize_window() changes the browser window size and can show more content at once. It does not turn a current-window screenshot method into a documented full-document capture method. Selenium’s WebDriver examples show window maximization separately from screenshot APIs, so use it only when the desired output is a larger viewport.
Troubleshoot a full-page image that still looks incomplete
The available Selenium API references establish the documented capture scopes, but they do not identify the cause of missing content in a particular setup. Use these checks to narrow it down rather than assuming the screenshot method is at fault.
Rank #4
- Confirm the method and browser. Verify that the method you call supports full-document capture for your installed language binding and browser. Firefox’s Python full-document methods are not evidence of a cross-browser guarantee.
- Check whether the content has rendered. If the page populates content after navigation, inspect the page state before taking the screenshot and ensure the relevant content is present.
- Check where the missing content lives. Content inside an element with its own scrolling area may not behave like content in the main document. Inspect the relevant element and its scrolling behavior.
- Inspect the saved image and target dimensions. Open the output file and check its dimensions and whether the missing area is absent from the image or merely not where expected.
- Record the automation stack versions. Include Selenium, browser, driver, and language-binding versions in a reproducible report. Selenium’s Java
TakesScreenshotAPI (version 4.28.0) distinguishes W3C-conformant screenshot behavior from browser-dependent best effort for non-conformant drivers.
Or skip the browser setup
If you need a screenshot through an API rather than Selenium, ScreenshotNeo accepts a URL in one GET request and returns an image or PDF. For example, with cURL:
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://example.com -o shot.webp
See the ScreenshotNeo API documentation for request options. It removes cookie banners, newsletter popups, and chat widgets before capture; bot checks, blank pages, and failed loads are not billed. Its MCP server lets AI agents take screenshots, and the free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000. Sign up for ScreenshotNeo’s free plan.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Frequently Asked Questions
Does Selenium’s save_screenshot() capture the whole page?
Not necessarily. Selenium’s Python Chromium API documents the standard method as saving a screenshot of the current window; use a full-document method supported by your browser and binding when you need the whole page.
Best Value
Can I use Firefox’s full-page screenshot method with Chrome?
The cited full-document method names are documented for Selenium’s Python Firefox API. Confirm the current API reference for the browser and binding you actually use rather than assuming the same methods apply.
What details should I include in a Selenium screenshot bug report?
Include the Selenium version, browser and version, driver and version, language binding, the screenshot method used, and whether the intended scope was viewport, full document, or element.
Recommended Free Tools
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

