java - 如何使用 Selenium 关闭 Chrome 的“下载”对话框(通过单击“取消”)
问题描述
我可以使用 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的更多信息。
我没有使用过Sikuli,但是当我提到你的问题时。我看到了上面链接中给出的示例。可能会帮助你。
推荐阅读
- python - 使用 for 循环从多个列表中打印一个值
- symfony - 如何修改 Symfony ORM 插入\更新查询
- mysql - 查询内部变量会在代码分析中引发错误
- javascript - React - TypeError:无法读取未定义的属性“dropdownList”
- sql - Oracle功能优化
- java - 如何使用 Recyclerview 在 android studio 中的视图中制作图像集合
- python - 在每一行中查找唯一值
- spring-boot - 使用 EC2 在 AWS Appmesh 上部署 Spring Boot 微服务
- dialogflow-es - 谷歌助手删除短语
- windows - 在 Windows 环境下的 GithubActions 中运行 cypress