处理Chrome浏览器“ www.xyz.com要:下载多个文件”自动化警报/弹出窗口-Robot Framework&SeleniumLibrary

时间:2019-07-12 14:57:41

标签: selenium selenium-chromedriver robotframework

在自动执行测试时,一次单击一次尝试下载3个文件时遇到问题(将Robot Framework与SeleniumLibrary结合使用,在VSCode中编写代码)。 Chrome显示一个弹出窗口,提示“ 插入域要:下载多个文件”,然后让您选择“允许”或“拒绝”。我需要允许所有3个文件成功下载。

Chrome弹出图片:

Chrome Popup Image

我一直在尝试使用Robot Framework中SeleniumLibrary提供的Press Key或Handle Alert关键字,但这没有用。

我还尝试使用各种参数启动Chrome,以覆盖此弹出窗口,但无济于事。还尝试查看如何更改chromedriver将启动的文件的首选项以及URL中的硬代码,但我找不到chromedriver使用的文件。

我知道SeleniumLibrary允许您执行JavaScript,但是对JavaScript没有任何经验,也不知道从哪里开始。

我不确定如何处理此警报,因为我已尝试在线阅读有关此问题的许多问题。任何帮助将不胜感激!

3 个答案:

答案 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})