selenium - 使用 Robot Framework 更改下载目录
问题描述
我目前能够访问网页并单击“下载”按钮。当我这样做时,下载会在默认目录中启动(下载......显然)
我想在我的桌面上创建一个文件夹并默认下载每个文件。我能怎么做?我需要什么?
解决方案
您必须覆盖浏览器的默认下载目录。这可以通过配置 Web 驱动程序来完成。SeleniumLibrary的Open Browser关键字为此目的为 Firefox ( ff_profile_dir
) 和 Chrome ( options
) 提供了单独的参数。
此外,您必须根据您使用的特定浏览器启用自动保存和其他浏览器配置。
请注意,在 Windows 上工作时,传递的路径需要特别注意:
请注意,如果选项字符串包含反斜杠,例如 Windows 操作系统路径,则反斜杠需要在 Robot Framework 数据和 Python 端进行转义。这意味着必须使用四个反斜杠字符编写单个反斜杠。例如,Windows 路径:
"C:\path\to\profile"
必须写为"C:\\\\path\\\to\\\\profile"
. 另一种编写反斜杠的方法是使用 Python 原始字符串和示例 write:r"C:\\path\\to\\profile"
。
这是一个示例,它将使用 Firefox 和 SeleniumLibrary 4.3.0从 GitHub 下载 Robot Framework 的源代码。
*** 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)文件夹来源:下载管理器首选项
browser.download.dir
是自定义文件夹的路径。确保按照文档中的说明传递路径。我在这个例子中使用了 Python 原始字符串。browser.helperApps.neverAsk.saveToDisk
这application/zip
意味着任何下载的 zip 都将被保存,而不会提示下载位置。
您可以在此 Stack Overflow 答案中找到指向 Chrome 和 Firefox 参数列表的链接:List of Firefox and Chrome arguments/preferences。
推荐阅读
- regex - 正则表达式匹配字符串的第一部分(直到第一次出现的空格字符),如果它不包含序列 ;host=
- instagram - instagram 基本显示 API 获取请求不起作用?
- sql - 如何在 SQL 查询中创建一个附加列,其中包含列值等于当前行的列值的行数?
- tensorflow - 获取渐变的 nans
- python - 错误:找不到任何 FFTW 库 (Windows)
- c# - 使用反射构建 EF Core 查询比使用反射更快
- c - 如何以十进制形式存储前导零的整数值(无八进制数字)?
- python - Python difflib 给出了不好的结果
- python - 如何调整 ctypes 消息框的大小
- html - 您如何通过 CSS 正确调整 gif 的大小并将其放入 Youtube 的视频播放器中?