- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我必须自动处理我必须使用 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 中,或者 Settings,比如在 Chrome 和 FF 中。
我在 Edge 中手动尝试,但出现下载提示时似乎没有保存文件的快捷方式。因此,我的解决方法是转到 Edge -> 设置 -> 高级设置并停用此下载提示。
有谁知道如何通过 Selenium 来做到这一点,就像在 Chrome、FF 中一样?
最佳答案
不要这样做,你在浪费时间。
浏览器制造商已经测试了浏览器下载机制是否有效,如果最坏的情况发生并且中断,您无论如何也不能强制用户更改浏览器版本。
如果您真的想检查服务器端是否存在文件,您可以使用标准的 http 库(如 OkHttp)来执行此操作。您不需要实际下载文件来检查它是否存在并且您应该避免下载它,除非您正在主动检查文件内容(在这种情况下我建议使用 SHA1 或 MD5 哈希来检查文件匹配)。
我之前写过关于这个的文章 on my blog ,尽管这些信息现在已经过时了。
关于java - 通过 Selenium 在 Microsoft Edge 中下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51399627/
前文链接: Spring复杂的BeanFactory继承体系该如何理解? ----上 Spring复杂的BeanFactory继承体系该如何理解? ----中 Spring IoC容器 Applica
我正在努力实现这个目标 | Div | |Div nav wrapper| | logo | |con
我正在尝试从下拉菜单中的链接进行模式启动。模态似乎启动了(网站变灰),但看不到。来自不在下拉列表中的常规链接的模式工作得很好。我愚弄了 jquery,但由于我是 jquery 的新手,所以没有任何结果
我是一名优秀的程序员,十分优秀!