我正在尝试使用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()
图片没有直接网址,因为它是每次点击时随机重新加载的验证码图片。我找到的唯一方法是让我能够处理它,首先将它保存在磁盘上(使用“将图像保存为...”)。保存整个页面不会保存此特定图像,因此它也无法正常工作。
有什么想法吗?
答案 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的问题)。