如何使用Selenium Webdriver(Python)在上下文菜单中选择“将图像另存为...”来保存图像

时间:2012-08-10 00:31:02

标签: python selenium webdriver contextmenu

我正在尝试使用selenium webdriver将特定图像保存到目录中。我希望通过模拟右键单击img元素并选择“将图像另存为...”来实现此目的。使用以下代码,我可以打开上下文菜单,但我无法选择正确的选项。

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

我也尝试过:

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

并使用快捷方式('v'似乎选择“将图像另存为...”)

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

图片没有直接网址,因为它是每次点击时随机重新加载的验证码图片。我找到的唯一方法是让我能够处理它,首先将它保存在磁盘上(使用“将图像保存为...”)。保存整个页面不会保存此特定图像,因此它也无法正常工作。

有什么想法吗?

3 个答案:

答案 0 :(得分:3)

如果它是你想要的验证码,你可能最好只是截取屏幕截图。

driver.save_screenshot('screenshot.png')

答案 1 :(得分:0)

正如kreativitea所建议的那样,屏幕截图将是最佳选择,因为CAPTCHA旨在防止脚本执行您正在尝试的操作。 CAPTCHA旨在防止会话重用。 Here is a page描述会话重用。

答案 2 :(得分:0)

我遇到了类似的问题,现在只需使用另存为---

就可以获得保存图像的快捷方式
Step-1-right click on an image you wish to save
Step-2- press v. 
Step-3-Enter to the directory window to save 

因为我是一名java程序员,这就是为什么我无法相应地粘贴代码(问到python的问题)。