我需要使用Selenium WebDriver和跨浏览器来自动化下载文件的情况。
我已经针对Chrome(通过ChromeOptions
)、FF(通过FirefoxProfile
)和IE11完成了此操作。例如,对于Firefox,我使用Firefox Profile
来禁止下载提示,代码如下:
profile.setPreference("browser.download.dir", "C:\\DownloadCleanup");
profile.setPreference("browser.download.folderList", 2);
profile.setPreference("browser.download.manager.showWhenStarting", false);
profile.setPreference("browser.helperApps.alwaysAsk.force", false);
profile.setPreference("browser.helperApps.neverAsk.saveToDisk", mimeTypes);
对于IE11,我使用Robot
类按下组合键Alt + S
,就像这样:
Robot robot = new Robot();
// simulate the "Alt + S" to save file on IE11 when Download Prompt appears
robot.keyPress(KeyEvent.VK_ALT);
robot.keyPress(KeyEvent.VK_S);
robot.keyRelease(KeyEvent.VK_ALT);
robot.keyRelease(KeyEvent.VK_S);
目前一切工作正常。现在我想在Edge浏览器中实现这个功能。但是我找不到与IE11相似的组合键,也没有类似Chrome和FF的设置。
我尝试在Edge中手动操作,但当出现“下载提示”时,似乎不存在保存文件的快捷键。所以,我的解决方法是进入Edge->设置->高级设置,并关闭此“下载提示”。
是否有人知道如何通过Selenium在Edge中实现类似Chrome、FF的操作呢?