在自动执行测试时,一次单击一次尝试下载3个文件时遇到问题(将Robot Framework与SeleniumLibrary结合使用,在VSCode中编写代码)。 Chrome显示一个弹出窗口,提示“ 插入域要:下载多个文件”,然后让您选择“允许”或“拒绝”。我需要允许所有3个文件成功下载。
Chrome弹出图片:
我一直在尝试使用Robot Framework中SeleniumLibrary提供的Press Key或Handle Alert关键字,但这没有用。
我还尝试使用各种参数启动Chrome,以覆盖此弹出窗口,但无济于事。还尝试查看如何更改chromedriver将启动的文件的首选项以及URL中的硬代码,但我找不到chromedriver使用的文件。
我知道SeleniumLibrary允许您执行JavaScript,但是对JavaScript没有任何经验,也不知道从哪里开始。
我不确定如何处理此警报,因为我已尝试在线阅读有关此问题的许多问题。任何帮助将不胜感激!
答案 0 :(得分:1)
对我来说,以下 ${prefs} 选项与 Robot Framework 一起工作,使用的浏览器是 Google Chrome 89.0.4389.72(官方版本)(64 位):
${prefs} = Create Dictionary download.default_directory=${download_directory} plugins.always_open_pdf_externally=${TRUE}
... **profile.default_content_setting_values.automatic_downloads=${1}** download.prompt_for_download=False
因此,您可以使用:profile.default_content_setting_values.automatic_downloads=${1}
答案 1 :(得分:0)
看起来可能是一条通知。您可以关闭这些功能,但不确定是否要在这里使用。要在ChromeDriver中关闭通知,请使用类似以下内容(java):
ChromeOptions options = new ChromeOptions();
prefs.put("profile.default_content_setting_values.notifications", 2);
options.setExperimentalOption("prefs", prefs);
driver = new ChromeDriver(options);
答案 2 :(得分:0)
答案为时已晚,但其他任何人都可以搜索 Robotframework 方式。 将此添加到您的 Chrome 偏好设置中..
${CHROMEPREFS} Create Dictionary profile.default_content_setting_values.automatic_downloads=${2}
Open Browser ${URL} ${BROWSER} options=add_experimental_option("prefs", ${CHROMEPREFS})