对于页面下载的每个附件,都会发出 page.on(“download”) 事件。
下载开始后,将发出下载事件。下载完成后,下载路径将变为可用
所有这些附件都下载到一个临时文件夹中。可以使用事件中的下载对象获取下载 URL、文件系统路径和有效负载流。
with page.expect_download() as download_info:
page.get_by_text("Download file").click()
download = download_info.value
# wait for download to complete
path = download.path()
方法
取消下载
该方法可以在点击事件后,取消下载文件。如果下载已完成或者已取消,则不能取消下载
download.cancel()
删除下载文件
download.delete()
下载失败
download.failure()
获取下载路径
在下载成功后,返回下载路径。
下载的文件名是随机的guid,可以使用download.suggested_filename获取建议的文件名
download.path()
下载文件另存为
将下载文件复制到用户指定的路径,如果下载没完成,会等待下载完成
download.save_as(path)
如果不知道什么事件触发了下载,可以使用如下方法:
page.on("download", lambda download: print(download.path()))
属性
获取下载文件的页面
download.page
如果不知道是什么启动了下载,仍然可以处理该事件:
page.on("download", lambda download: print(download.path()))
建议的文件名
download.suggested_filename
获取下载URL
download.url
示例
比如有个页面有下载地址
<body>
<h1>下载文件</h1>
<a href="https://www.python.org/ftp/python/3.10.10/python-3.10.10-embed-amd64.zip">点我下载</a>
</body>
下载文件并保存。 文章来源:https://www.toymoban.com/news/detail-642949.html
from playwright.sync_api import sync_playwright
def run(playwright):
chromium = playwright.chromium
browser = chromium.launch(headless=False, slow_mo=3000)
page = browser.new_page()
page.goto(r'download.html')
with page.expect_download() as download_info:
page.get_by_text("点我下载").click()
download = download_info.value
print(download.page)
# wait for download to complete
print(download.url) # 获取下载的url地址
# 这一步只是下载下来,生成一个随机uuid值保存,代码执行完会自动清除
print(download.path())
# 最终可以用save_as 保存到本地
download.save_as(download.suggested_filename)
browser.close()
with sync_playwright() as playwright:
run(playwright)
文章来源地址https://www.toymoban.com/news/detail-642949.html
到了这里,关于最强自动化测试框架Playwright(9)- 下载文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!