有没有办法将密钥发送到 Selenium webdriver 中的 "Save Image As..." 对话框?

Is there a way to send keys to "Save Image As..." dialog in Selenium webdriver?

正在尝试提取图片,成功触发了"Save Image as..."对话框,但是无法发送任何密钥,有没有办法解决这个问题?

driver = webdriver.Firefox()
actions = webdriver.ActionChains(driver)
actions.move_to_element(img).context_click(img).send_keys('v').perform()

time.sleep(2)

# and this line does not work
actions.send_keys('image.jpg').perform()

离万事大吉只差一步,我该怎么做?

这是一种您无法使用 selenium 控制的弹出窗口。

在这种情况下,您需要要求浏览器自动保存文件,方法是调整其首选项(也称为所需功能):

profile = webdriver.FirefoxProfile()
profile.set_preference("browser.download.folderList", 2)
profile.set_preference("browser.download.manager.showWhenStarting", False)
profile.set_preference("browser.download.dir", "/path/to/file")
profile.set_preference("browser.helperApps.neverAsk.saveToDisk", "image/jpeg")

driver = webdriver.Firefox(firefox_profile=profile)

其中 browser.helperApps.neverAsk.saveToDisk 设置值应包含应自动下载的文件的 MIME 类型(或逗号分隔的 MIME 类型列表)。

另请参阅:

  • Access to file download dialog in Firefox