您必须覆盖浏览器的默认下载目录。这可以通过配置 Web 驱动程序来完成。 SeleniumLibrary 的 Open Browser 关键字为此目的为 Firefox (ff_profile_dir) 和 Chrome (options) 提供了单独的参数。
此外,您必须根据您使用的特定浏览器启用自动保存和其他浏览器配置。
请注意,在 Windows 上工作时,需要特别注意传递的路径:
请注意,如果选项字符串包含反斜杠,例如 a
Windows 操作系统路径,反斜杠需要在 Robot Framework 中转义
数据和 Python 端。这意味着必须写入单个反斜杠
使用四个反斜杠字符。例如,Windows 路径:
"C:\path\to\profile" 必须写为"C:\\\\path\\\to\\\\profile"。
另一种编写反斜杠的方法是使用 Python 原始字符串和示例
写:r"C:\\path\\to\\profile"。
这是一个使用 Firefox 和 SeleniumLibrary 4.3.0 下载 source of Robot Framework from GitHub 的示例。
*** Settings ***
Library SeleniumLibrary
*** Test Case ***
Download Robot Framework into predefined folder
Open Browser https://github.com/robotframework/robotframework Firefox
... ff_profile_dir=set_preference("browser.download.folderList", 2);set_preference("browser.download.dir", r"C:\\Users\\myuser\\Documents\\Robotframework\\SO_material");set_preference("browser.helperApps.neverAsk.saveToDisk", "application/zip")
Click Element //summary[contains(.,'Code')]
Click Element //a[contains(.,'Download ZIP')]
[Teardown] Close Browser
浏览器参数设置:
-
browser.download.folderList 设置为 2 其中
2 表示自定义(参见:browser.download.dir)文件夹
来源:Download Manager preferences
-
browser.download.dir 是自定义文件夹的路径。确保按照文档中的说明传递路径。我在这个例子中使用了 Python 原始字符串。
-
browser.helperApps.neverAsk.saveToDisk 是application/zip,这意味着任何下载的 zip 都将被保存而不提示下载位置。
您可以在此 Stack Overflow 答案中找到指向 Chrome 和 Firefox 参数列表的链接:List of Firefox and Chrome arguments/preferences。