I am trying to download an image from a URL using Selenium Webdriver in Python. The site is protected by a login page, so can't just save the URL contents using requests. I am able to get text from the site after logging in, but I can't figure out how to save an image.
After I log in to the site, I can do browser.save_screenshot(filename + '.png')
but that image is not the correct size as the original.
The code that I have now is this:
browser = webdriver.Chrome('../chromedriver')
browser.get('www.example.com/login')
# send username and password, click submitbrowser.get('www.example.com/123')
html = browser.page_source
printData(html)# this url is an image file
browser.get('www.example.com/get_photo.php?id=123')
browser.save_screenshot(filename + '.png')
Ideally I would like to replace the save_screenshot()
with something like
with open(filename + '.jpeg', 'w') as img:img.write(browser.download_current_image())
or even something like this, interacting with the popup menu
browser.right_click()
browser.down_arrow_key()
browser.return_key()
or simulating a keypress
browser.command_key()
browser.s_key()
This question gives the answers that I want, but not for Python. If there is a way to do any of the things suggested in that question (besides taking a screenshot) in Python, that would be a great solution.