Luis Y
Luis Y

Reputation: 353

How to save an image by selecting "save image as..." in a context menu using Selenium Webdriver (Python)

I'm trying to use selenium webdriver to save a specific image to a directory. I was looking to do this by simulating a right click on the img element and selecting "save image as...". With the following code I can open the context menu, but I'm unable to select the correct option.

browser = WebDriver(executable_path=CHROMEDRIVER_PATH)
browser.get(URL)
img = browser.find_element_by_tag_name('img')
ActionChains(browser).context_click(img).perform()

I also tried:

ActionChains(browser).context_click(img).send_keys(Keys.ARROW_DOWN).send_keys(Keys.ENTER).perform()                 

and using a shortcut ('v' seems to select "save image as...")

ActionChains(browser).context_click(img).send_keys('v').perform()

The image does not have a direct URL because it's a captcha image that is reloaded randomly on each click. The only way I found, for me to be able to process it, is to save it on the disk first (using "save image as..."). Saving the entire page does not save this specific image so it won't work as well.

Any ideas?

Upvotes: 6

Views: 9471

Answers (3)

Shantanu Nandan
Shantanu Nandan

Reputation: 1462

I was having the similar problem and just now got a shortcut to save a image by using save as---

Step-1-right click on an image you wish to save
Step-2- press v. 
Step-3-Enter to the directory window to save 

Since i am a java programmer thats why i was not able to paste a code accordingly( question asked for python).

Upvotes: 1

taco
taco

Reputation: 1373

As suggested by kreativitea, a screenshot would be the way to go because CAPTCHA's were designed to prevent scripts from doing what you're trying to do. CAPTCHA's are meant to prevent session re-use. Here is a page describing session re-use.

Upvotes: 0

kreativitea
kreativitea

Reputation: 1791

If it's a captcha you're after, you're probably better off just taking a screenshot.

driver.save_screenshot('screenshot.png')

Upvotes: 4

Related Questions