⤵️ 浏览器下载
本节介绍对浏览器下载任务进行设置的功能。
✅️ 概述
📌 功能
DrissionPage 提供以下功能,用于对浏览器下载任务进行控制:
- 每个 tab 对象可独立设置文件保存路径
- 下载前可指定文件名称,实现文件重命名
- 可设置存在同名文件时的处理方式
- 可获取任务下载进度
- 可等待下载任务结束
- 可取消任务
- 可拦截下载任务并获取其信息
⚠️ 注意事项
📌 记得等待任务结束
因技术原因,程序在下载结束时才能对其重命名,在这之前文件名是临时的任务 id。
因此必需等待下载完毕,文件名才能正确命名。无论是否指定文件名都一样。
示例:
page = ChromiumPage()
page('#button').click() # 点击下载按钮
page.wait.download_begin() # 等待下载开始
page.wait.all_downloads_done() # 等待所有任务结束
📌 多 Tab 操作时推荐设置临时路径
程序需要把任务下载到一个指定位置,完成后再移动到目标路径,因此,如果程序涉及多个 Tab 触发下载任务,最好给 Page 对象设置一个下载路径。
即使每个 Tab 对象都设置了自己的路径。
示例:
page = ChromiumPage()
page.set.download_path('tmp') # 设置总路径
tab1 = page.get_tab(2)
tab1.set.download_path('path1')
tab2 = page.get_tab(3)
tab2.set.download_path('path2')
Tips
这个示例中,page
本身就是一个标签页,所以这里有 3 个标签页。
如果get_tab()
获取page
的标签页进行设置,会覆盖page
的设置。
📌 启动下载管理功能
本节介绍的下载管理功能默认不开启,此时触发下载任务和手动操作没有区别。
当启动配置中设置了下载路径,或调用set.download_path()
方法时,管理功能才会启动。
使用clcik.to_download()
方法会自动自动此功能。