Here’s a complete example (using google’s recaptcha as a target):
import urllib
from selenium import webdriver
driver = webdriver.Firefox()
driver.get('http://www.google.com/recaptcha/demo/recaptcha')
# get the image source
img = driver.find_element_by_xpath('//div[@id="recaptcha_image"]/img')
src = img.get_attribute('src')
# download the image
urllib.urlretrieve(src, "captcha.png")
driver.close()
UPDATE:
The problem with dynamic generated images is that there is a new image generated each time you request it. In that case, you have several options:
-
take a screenshot
from selenium import webdriver driver = webdriver.Firefox() driver.get('https://moscowsg.megafon.ru/ps/scc/php/cryptographp.php?PHPSESSID=mfc540jkbeme81qjvh5t0v0bnjdr7oc6&ref=114&w=150') driver.save_screenshot("screenshot.png") driver.close()
-
simulate right click + “Save As”. See this thread for more info.
Hope that helps.