2012-08-10 44 views
5

Estoy tratando de usar Selenium webdriver para guardar una imagen específica en un directorio. Quería hacer esto simulando un clic derecho en el elemento img y seleccionando "guardar imagen como ...". Con el siguiente código, puedo abrir el menú contextual, pero no puedo seleccionar la opción correcta.Cómo guardar una imagen seleccionando "guardar imagen como ..." en un menú contextual usando Selenium Webdriver (Python)

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

También probé:

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

y mediante un acceso directo ('v' Parece que seleccionar "guardar imagen como ...")

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

La imagen no tiene una URL directa porque es una imagen de captcha que se carga aleatoriamente en cada clic. La única forma que encontré, para que yo pueda procesarla, es guardarla primero en el disco (usando "guardar imagen como ..."). Guardar toda la página no guarda esta imagen específica así que no funcionará tan bien.

¿Alguna idea?

+0

Tal vez esto puede ayudarlo http://stackoverflow.com/a/3324611/541208 – TankorSmash

+0

tks para su respuesta, pero creo que no resuelve este problema. Me gustaría lograr esto usando Chrome Web Driver si es posible. Tuve algunos problemas al utilizar FireFox al representar javascript. –

Respuesta

3

Si lo que busca es un captcha, probablemente sea mejor que solo tome una captura de pantalla.

driver.save_screenshot('screenshot.png') 
0

Como sugiere kreativitea, una captura de pantalla sería el camino a seguir, porque CAPTCHA fueron diseñados para evitar que los scripts de hacer lo que estamos tratando de hacer. Los CAPTCHA están destinados a evitar la reutilización de la sesión. Here is a page que describe la reutilización de la sesión.

0

que estaba teniendo el problema similar y ahora tengo un acceso directo para guardar una imagen utilizando guardar como ---

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

ya que soy un programador de Java eso es por eso que no era capaz de pegar un código en consecuencia (pregunta hecha por python).

Cuestiones relacionadas