Is there a way to trigger a full screen screenshot via Selenium/WebDriver? (not a partial/window screenshot - that I can do)
back
2 comments
Firefox has a screenshot feature that I'd like to trigger from Selenium, which is by going through the "..." icon in the URL bar which opens up a menu with its last item being "Take a screenshot" (and then you can select a full page screenshot).
Is there a way to programmatically trigger this feature or sequence?
If I'm understanding correctly, could you just select the body tag and screenshot that? In Selenium Python that'd be:
# driver is a Firefox driver
body = driver.find_element_by_tag_name('body')
screenshot = body.screenshot_as_base64 # png bytesJust tried this - doesn't seem to work:
- a lot of (visible) elements are missing
- the screenshot is still cropped to whatever viewport is used
Definitely just speculating here, but there is a `driver.save_screenshot(path)` method that would probably be worth trying.
This worked for me:
from selenium.webdriver import Firefox
from selenium.webdriver.firefox.options import Options
geckodriver_path = '/usr/local/bin/geckodriver'
options = Options()
options.add_argument('-headless')
driver = Firefox(executable_path=geckodriver_path, firefox_options=options)
url='https://news.ycombinator.com/item?id=16576015'
driver.get(url)
driver.save_screenshot('./hn.png')