【发布时间】:2018-10-12 15:43:27
【问题描述】:
我可以使用 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,但目前的实现似乎不可能。有什么解决办法吗?
【问题讨论】:
-
如果你不想下载,为什么要先点击链接下载?
-
@DebanjanB 我想下载,但不保存。长话短说,我需要点击下载按钮才能激活另一个按钮来点击。这就是为什么保存文件不是强制性的。
-
@Ragnarsson 您可以在 chrome 的 下载 下启用 在下载前询问每个文件的保存位置 选项。这样它就会询问下载文件的位置。但是系统将打开以选择位置。要在该窗口中进行操作,您将不得不使用第三方工具。 Selenium 不会处理这个问题。
-
您可以随时下载和删除文件。
-
在新选项卡上打开
chrome://downloads/并单击与paper-button#cancel匹配的第一个元素怎么样?这将取消最新的下载(在您的情况下;应该有一个)。然后您需要关闭该选项卡,并返回您的主选项卡并继续您的测试。您可以按照这些步骤添加一个辅助方法。
标签: java google-chrome selenium-webdriver automated-tests