6

我正在尝试使用 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()

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

有任何想法吗?

4

3 回答 3

4

如果它是您所追求的验证码,那么您最好只截取屏幕截图。

driver.save_screenshot('screenshot.png')
于 2012-09-13T00:14:00.560 回答
1

我遇到了类似的问题,刚刚获得了使用另存为保存图像的快捷方式---

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 提出的问题)。

于 2014-10-27T16:02:18.760 回答
0

正如 kreativitea 所建议的,屏幕截图将是可行的方法,因为 CAPTCHA 旨在防止脚本执行您尝试执行的操作。验证码旨在防止会话重用。这是一个描述会话重用的页面。

于 2012-09-13T01:38:19.733 回答