Playwright解决永久保存下载文件

2023-10-27

Playwright默认在浏览器关闭的时候,所有的临时文件都将删除,无论你是自定义位置还是默认位置。那么如何正确下载对应的文件呢?废话不多说,大家直接看以下代码即可:

这里还是告诫大家一下,多研究官网的API文档,别学我慌慌张张去搞了,啥都没看。

const { chromium, firefox, webkit } = require('playwright');

(async () => {
  // 指定下载文件位置
  const browser = await chromium.launch({downloadsPath: "Download URL Path", headless: false});
  const page = await browser.newPage();
  await page.goto('Request URL');
  // 获取下载对象
  const [ download ] = await Promise.all([
    // 指定等待下载事件
    page.waitForEvent('download'),
    // 点击下载元素
    page.locator('Element').click(),
  ]);
  // 下载路径,包含临时文件名
  const path = await download.path();
  // 文件全称,含后缀
  const fileName = download.suggestedFilename();
  // 保存文件
  await download.saveAs(path + fileName);
  await page.waitForTimeout(3000);
  await browser.close();
})();

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Playwright解决永久保存下载文件 的相关文章

随机推荐

  • 登录认证功能的统一拦截技术(过滤器)

    目录 1 前言 2 过滤器 1 说明 2 使用步骤 3 说明示例 4 具体示例 5 过滤器详细说明 3 登录校验的过滤器实现 1 实现流程 2 具体实现 1 前言 前端发起请求 每次都会在请求头中携带JWT令牌到服务端 而服务端需要统一拦截
  • JSON.PARSE() 出现UNEXPECTED END OF JSON INPUT原因是什么怎么解决

    原因 打印出来的数据当中为判断题时数据是空的 当使用JSON parse字符串转数组时 如果里面数据有空 那么就会报错 做一个判断就好了 有才取值 if value var fileList JSON parse value else va
  • zTree 树插件实现全国五级地区点击后加载

    在项目功能中需要录入户籍地和现居住地 为减少用户输入量 将使用树插件选择全国五级地区 输入框输入详细地址 这里优先使用了zTree树插件 为了以后使用学习 在这里进行相关记录 当然在实现过程中参考各大神的文章是必不可少的 可以结合了自己的实
  • RS485利用地址主动仲裁驱动

    源码下载 MAX485 主动竞争驱动 rar C文档类资源 CSDN下载 引入背景 最近在工作中使用了RS485协议 之前虽然知道怎么用 但是实际应用到工程上还是第一次 在使用过程中就涉及到RS485总线的一些架构问题 我们都知道 RS48
  • [carla]关于odometry坐标中的角度坐标系 以及 到地图的映射问题

    1 获取车辆的Odometry原始信息 在carla中 通过订阅 carla ego vecle odometry 可以查看车辆的全局位置信息 例如 gt header seq 118872 stamp secs 5946 nsecs 57
  • C++ 二维数组vector如何添加空行

    在制作BP神经网络时 需要给vector添加一个空行 自己根据直觉进行了以下试探 发现并没有问题 include
  • C++析构函数的自动调用问题

    首先要明确一点 系统只会自动释放栈内空间 而堆内空间需要用户自己维护 C 中 除了new来的空间存放在堆内 其他均存放在栈中 当单纯的创建对象的时候 对象存放在栈中 此时在程序块的 后面 系统会自动调用析构函数 释放掉栈空间 但是 如果创建
  • 简述浏览器渲染流程

    近期的项目涉及到了前端的一系列知识 所以就简单的总结一下 因为不是前端人员 相关的概念可能不会分析的很深 如果说法有问题 希望路过的大佬们多多指教 下面说的大多是自己的理解 尽可能简洁又通俗 说到浏览器渲染 一个重要前提应该就是dom do
  • Ubuntu启动ftp服务

    Ubuntu启动ftp服务 1 安装vsftpd sudo apt get install vsftpd 2 修改ftp配置文件 注意要加sudo 否则无权限更改 sudo vi etc vsftpd conf 将 local enable
  • MySQL数据库入门实战教程

    目录 前言 一 创建建数据库 创建建数据表 查看数据库 查看数据表 二 新增 修改 删除表记录 三 基础查询 where子句查询 1 基础查询 2 WHERE子句查询 3 Like模糊查询 四 分组查询 聚合函数 排序查询 4 排序查询 5
  • 子集和问题

    子集和问题 描述 Description 问题描述 子集和问题的一个实例为 S t 其中 S x1 x2 xn 是一个正整数的集合 c是一个正整数 子集和问题判定是否存在S的一个子集S1 使得子集S1和等于c 编程任务 对于给定的正整数的集
  • 【数据结构】堆的实现(简单易懂,超级详细!!!)

    目录 1 堆的概念及结构 概念 规律 2 堆的实现 2 1结构设计 2 2接口实现 2 3 初始化 2 4堆的向下调整算法 主要思想 涉及问题 代码实现 2 5建堆 思想 代码实现 建堆的时间复杂度 2 6 堆的向上调整算法 主要思想 涉及
  • PyQt5常用模块、类、控件

    一 常用模块 QtCore 包含非核心的GUI功能 此模块用于处理时间 文件和目录 各种数据类型 流 URL MIME类型 线程或进程 QtGui 包括窗口系统集成 事件处理 二维图形 基本成像 字体和文本 QtWidgets 基本控件都位
  • Yii Framework 开发教程(33) Zii组件-Accordion示例

    Zii组件中包含了一些基于JQuery的UI组件 这些UI组件定义在包zii widgets jui中 包括CJuiAccordion CJuiAutoComplete CJuiDatePicker等 本篇介绍CJuiAccordion 显
  • ARM的37个寄存器和异常处理机制详解

    1 ARM的37个寄存器 ARM的37个寄存器中 30个寄存器是 通用 1个固定用作PC 程序控制寄存器 一个固定用作CPSR 程序状态寄存器 5个固定用作5种异常模式下的SPSR 程序状态保存寄存器 特别注意user模式和sys模式共用寄
  • SPI总线的原理

    一 简介 SPI Serial Peripheral Interface 串行外围设备接口 是Motorola公司提出的一种同步串行接口技术 是一种高速 全双工 同步通信总线 在芯片中只占用四根管脚用来控制及数据传输 广泛用于EEPROM
  • Unity PackageManager一直加载不到信息的解决方法

    关闭unity 断开网络连接 打开unity 这时候会加载出来 连接网络开始install
  • 牛客网——两数之和

    题目描述 给出一个整数数组 请在数组中找出两个加起来等于目标值的数 你给出的函数twoSum 需要返回这两个数字的下标 index1 index2 需要满足 index1 小于index2 注意 下标是从1开始的 假设给出的数组中只存在唯一
  • 解决error: subprocess-exited-with-error

    运行 pip install upgrade setuptools 即可解决
  • Playwright解决永久保存下载文件

    Playwright默认在浏览器关闭的时候 所有的临时文件都将删除 无论你是自定义位置还是默认位置 那么如何正确下载对应的文件呢 废话不多说 大家直接看以下代码即可 这里还是告诫大家一下 多研究官网的API文档 别学我慌慌张张去搞了 啥都没