我试图通过电子下载一个文件与Selenium Chromedriver.由于我们无法处理弹出窗口选择文件夹下载,我试图避免这种弹出以这种方式:
prefs.put("download.prompt_for_download", false);
字符串
但它不起作用。完整的代码是:
ChromeOptions options = new ChromeOptions();
HashMap<String, Object> prefs = new HashMap<>();
prefs.put("profile.default_content_settings.popups", 0);
prefs.put("download.default_directory", LocationUtil.getDownloadFolderPath());
prefs.put("download.prompt_for_download", false);
prefs.put("safebrowsing.enabled", false); // to disable security check eg. Keep or cancel button
options.setExperimentalOption("prefs", prefs);
ChromeDriver chromeDriver= new ChromeDriver(options);
型
也试图通过能力把这些偏好,但没有成功。((MutableCapabilities) chromeDriver.getCapabilities()).setCapability(ChromeOptions.CAPABILITY, options);
版本:
- Chrome驱动程序80.0.3987.16
- Selenium Java 3.141.59
我如何在Electron应用程序中没有弹出窗口的情况下将文件下载到特定目录中?UPD:使用浏览器Chrome进行测试-一切正常。
1条答案
按热度按时间brtdzjyr1#
看起来你离得很近
除了将
download.prompt_for_download
的首选项添加到false
之外,您还需要设置以下几个首选项:xml
文件的示例,您需要添加:字符串
safebrowsing.enabled
,如下所示:型
safebrowsing-disable-download-protection
型
safebrowsing-disable-extension-blacklist
型
elementToBeClickable()
的WebDriverWait。型
作为一个演示,如果要从website下载一个xml文件,你的有效代码块将是:
型
浏览器快照:
x1c 0d1x的数据
参考资料
您可以在以下内容中找到一些相关的参考讨论: