我必须自动化一个案例,我必须使用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中这样做.但我找不到Edge的组合键,比如在IE11中,或者在Chrome和FF中找不到设置.
我在Edge中手动尝试,但在下载提示出现时似乎没有保存文件的快捷方式.所以,我的解决方法是转到Edge – >设置 – >高级设置并停用此下载提示.
有没有人知道如何通过Selenium这样做,比如Chrome,FF?