K3y*_*3yg 10 python playwright playwright-python
我正在尝试使用 Playwright 自动下载 PDF 文件,我的代码与 Selenium 一起使用,但 Playwright 中的一些功能引起了我的注意。真正的问题是文档
没有帮助。当我点击下载时,我得到:

而且我无法更改下载的目录,当浏览器/上下文关闭时它也会删除“文件”。使用 Playwright 我可以实现很好的下载自动化吗?
代码:
def run(playwright):
browser = playwright.chromium.launch(headless=False)
context = browser.new_context(accept_downloads=True)
# Open new page
page = context.new_page()
# Go to http://xcal1.vodafone.co.uk/
page.goto("http://xcal1.vodafone.co.uk/")
# Click text=Extra Small File 5 MB A high quality 5 minute MP3 music file 30secs @ 2 Mbps 10s >> img
with page.expect_download() as download_info:
page.click("text=Extra Small File 5 MB A high quality 5 minute MP3 music file 30secs @ 2 Mbps 10s >> img")
download = download_info.value
path = download.path()
download.save_as(path)
print(path)
# ---------------------
context.close()
browser.close()
with sync_playwright() as playwright:
run(playwright)
Run Code Online (Sandbox Code Playgroud)
剧作家download.path()中的只是一个随机的 GUID(全局唯一标识符)。它旨在验证下载工作 - 而不是保留文件。
Playwright 是一个测试工具,想象一下在每次代码更改时在每个主要浏览器上运行测试 - 任何下载都会很快占用大量空间,如果您需要手动清除它们,它会砍掉人们。
好消息是您已经非常接近了 - 如果您想保留该文件,您只需在save_as.
而不是这个:
download.save_as(path)
Run Code Online (Sandbox Code Playgroud)
用这个:
download.save_as(download.suggested_filename)
Run Code Online (Sandbox Code Playgroud)
这会将文件保存在与脚本相同的位置。
| 归档时间: |
|
| 查看次数: |
11191 次 |
| 最近记录: |