How to save an image by selecting “save image as…” in a context menu using Selenium Webdriver (Python)

允我心安 提交于 2019-12-04 13:07:07

问题


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?


回答1:


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

driver.save_screenshot('screenshot.png')



回答2:


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.




回答3:


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).



来源:https://stackoverflow.com/questions/11893904/how-to-save-an-image-by-selecting-save-image-as-in-a-context-menu-using-sel

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!