java - 如何使用 Selenium 关闭 Chrome 的下载对话框(通过单击取消)

标签 java google-chrome selenium-webdriver automated-tests

我可以使用 WebDriver 在 Chrome 中自动执行下载操作。下面是我设置 Chrome 驱动程序的代码:

ChromeOptions options = new ChromeOptions();
HashMap<String, Object> chromePrefs = new HashMap<>();
chromePrefs.put("download.default_directory", "/pathToDownloadFolder");
chromePrefs.put("download.prompt_for_download", false);
chromePrefs.put("download.directory_upgrade", true);
chromePrefs.put("safebrowsing.enabled", true);
options.setExperimentalOption("prefs", chromePrefs);
// create chrome driver
webDriver = new ChromeDriver(options);

文件将保存在 pathToDownloadFolder 中。

但我实际上并不想保存文件。我的目的是自动执行用户操作:点击下载 -> 显示下载对话框 -> 用户点击取消。

哪个选项可以镜像下载对话框的取消按钮?

编辑

我想下载,但不想保存,因为我需要点击下载按钮才能激活另一个按钮来点击,所以保存文件是没有必要的,这就是为什么我想关闭(或自动操作用户点击取消时出现下载对话框)

我调查了 Chrome Options ,但目前的实现似乎不可能。有什么解决方法吗?

最佳答案

启用或提示浏览器请求权限可以使用以下代码完成,

chromePrefs.put("download.prompt_for_download", false);

我看你用过。使其成为 true

chromePrefs.put("download.prompt_for_download", true);

这将要求您选择下载位置。因为点击下载后,大多数情况下系统窗口会打开,这无法使用 webdriver 处理。 为此,您必须使用 Sikuli 等第三方工具。

有关 Sikuli 的更多信息,请参见 here .

我没有用过 Sikuli ,但是当我提到你的问题时。我看到了上面链接中给出的示例。也许这会对您有所帮助。

关于java - 如何使用 Selenium 关闭 Chrome 的下载对话框(通过单击取消),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50136196/

相关文章:

java - 如何在 android studio 的 If 语句中写入 "if button clicked"?

java - 如何在 GWT 中使用 java.util.Calendar

java - 导入和扩展类有什么区别?

html - Chrome 不响应 CSS

javascript - Chrome 中的 $ 变量(美元符号)?

python - 为什么它不发送_keys到评论框?

java - 自动登录后如何将 cookie 导出到 Selenium 中的文件

selenium - Selenium 中可以进行 slider 移动吗?

java - Tomcat启动后调用构造函数

css - 具有绝对定位元素的 Chrome 和 Safari 之间一个像素的水平偏移