1

from selenium import webdriver
from selenium.webdriver import ActionChains

def isExistsByXpath(xpath):
    try:
        element = driver.find_element_by_xpath(xpath)
        return True
    except Exception as e:
        return False

driver = webdriver.Firefox() 
driver.implicitly_wait(30)  
driver.get("http://callback.ganji.com/firewall/valid/920573663.do?namespace=ganji_hy_detail_pc&url=http%3A%2F%2Fanshan.ganji.com%2Fzhiyepeixun%2F944875012x.htm")
while not isExistsByXpath('//img[@class="dvc-captcha__bgImg"]'):
    driver.find_element_by_xpath('//input[@id="btnSubmit"]').click()
element = driver.find_element_by_xpath('//img[@class="dvc-captcha__bgImg"]')
action = ActionChains(driver)
action.move_to_element(element).context_click(element).perform()

How to download the image with right click ? I try to use 'send_keys' but not work .

Help please

  • python 3.6
  • ubuntu 17.04
user8942934
  • 36
  • 1
  • 3
  • Possible duplicate of [How to download an image using Selenium (any version)?](https://stackoverflow.com/questions/6813704/how-to-download-an-image-using-selenium-any-version) – Eugene S Dec 19 '17 at 05:16
  • In my case , the url of image can only be accessed once . Therefore , sending the request again does not work . – user8942934 Dec 19 '17 at 06:29
  • Possible duplicate of [Python: Unable to download with selenium in webpage](https://stackoverflow.com/questions/44072022/python-unable-to-download-with-selenium-in-webpage) – undetected Selenium Dec 19 '17 at 15:09

1 Answers1

1

Try something like that

import urllib
from selenium import webdriver

driver = webdriver.Chrome()
driver.get('YOUR_URL')

# get the image source
image_path = driver.find_element_by_xpath('IMAGE_XPATH')
src = img.get_attribute('src')

# download the image
urllib.urlretrieve(src, "captcha.png")

driver.close()
Carlo 1585
  • 1,455
  • 1
  • 22
  • 40