You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Playwright自动化:如何验证CSV下载按钮点击后的文件下载有效性

使用Playwright验证CSV下载功能的自动化脚本

前置准备

先确保安装Playwright及所需浏览器:

pip install playwright
playwright install chromium

核心脚本实现

以下是Python版本的验证脚本,可直接适配你的场景:

from playwright.sync_api import sync_playwright
import os

def verify_csv_download():
    # 自定义下载目录,自动创建不存在的目录
    download_dir = "./csv_downloads"
    os.makedirs(download_dir, exist_ok=True)

    with sync_playwright() as p:
        # 启动浏览器并配置下载参数
        browser = p.chromium.launch(headless=False)  # 调试时保留可视化,生产可改为True
        context = browser.new_context(
            accept_downloads=True,
            downloads_path=download_dir
        )
        page = context.new_page()

        # 导航到目标页面
        page.goto("你的目标页面URL")

        # 定位并点击CSV下载按钮(根据实际页面调整选择器)
        # 示例:用文本定位,也可改用CSS选择器如page.locator("#csv-btn")
        page.locator("text=CSV下载").click()

        # 等待下载事件完成,获取文件路径
        download = page.wait_for_event("download")
        downloaded_file_path = download.path()

        # 验证文件是否成功生成
        assert os.path.exists(downloaded_file_path), "CSV文件下载失败:未找到文件"

        # 可选:验证文件内容有效性(按需添加)
        with open(downloaded_file_path, "r", encoding="utf-8") as file:
            content = file.read()
            # 替换为你的业务校验规则,比如检查表头
            assert "用户ID,用户名,注册时间" in content, "CSV文件内容不符合预期"

        print("CSV下载验证通过")
        browser.close()

if __name__ == "__main__":
    verify_csv_download()

关键注意事项

  • 选择器调整:如果文本定位失败,改用按钮的id、class或XPath,比如page.locator(".download-btn.csv")。
  • 权限问题:确保脚本对下载目录有读写权限,避免因权限不足导致下载失败。
  • 无头模式:生产环境运行时,将launch(headless=False)改为headless=True,取消浏览器界面显示。
  • API调用排查:如果点击后未触发API,可在脚本中添加page.on("request", lambda request: print(request.url))监听所有请求,确认是否真的无API调用,辅助排查问题。

内容的提问来源于stack exchange,提问作者Gopal Sakhiya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 04:30:11