如何与剧作家一起下载?

2023-12-25

我正在尝试使用以下命令从网站下载文件剧作家 https://github.com/microsoft/playwright。触发下载的按钮做了一些js,然后开始下载。

使用单击按钮.click函数触发下载但显示错误:失败 - 下载错误.

我尝试过使用 devtools 协议Page.setDownloadBehavior https://vanilla.aslushnikov.com/?Page.setDownloadBehavior,但这似乎没有任何作用。

    const playwright = require("playwright");
    const { /*chromium,*/ devices } = require("playwright");
    const iPhone = devices["iPad (gen 7) landscape"];

    (async () => {
        const my_chromium = playwright["chromium"];
        const browser = await my_chromium.launch({ headless: false });
        const context = await browser.newContext({
            viewport: iPhone.viewport,
            userAgent: iPhone.userAgent
        });
        const page = await context.newPage();
        const client = await browser.pageTarget(page).createCDPSession();
        console.log(client);
        await client.send("Page.setDownloadBehavior", {
            behavior: "allow",
            downloadPath: "C:/in"
        });
        //...and so on
        await page.click("#download-button");
        browser.close();
    })();

完整文件在这里 https://github.com/bvn-architecture/cab_venn/blob/master/scraper.ts

有一个更好的下载建议 https://github.com/microsoft/playwright/issues/853 api in 剧作家 https://github.com/microsoft/playwright,但我找不到当前的API。 有一个建议是与某事有关downloadWillBegin event https://chromedevtools.github.io/devtools-protocol/tot/Page/#event-downloadWillBegin会很有用,但我不知道如何从剧作家那里访问它。

我对应该使用 Puppeteer 的建议持开放态度,但我转为剧作家,因为我也不知道如何使用 Puppeteer 下载文件,并且与之相关的问题表明整个团队已经转向剧作家 https://github.com/puppeteer/puppeteer/issues/299.


看看page.on(“下载”) https://playwright.dev/docs/api/class-page#page-event-download

const browser = await playwright.chromium.launch({});
const context = await browser.newContext({ acceptDownloads: true });
const page = await context.newPage();
await page.goto("https://somedownloadpage.weburl");
await page.type("#password", password);
await page.click("text=Continue");
const download = await page.waitForEvent("download");
console.log("file downloaded to", await download.path());
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何与剧作家一起下载? 的相关文章

随机推荐

  • 重新创建 Win32 标头是个好主意吗?

    我发现自己最近针对 Win32 编写了更多的 C C 代码 并且来自 C 背景的我对完全一致的 干净代码 产生了痴迷 因此从漂亮的 System 命名空间回到了构成 Win32 API 头文件的 defines 的混杂有点文化冲击 在阅读了
  • std::mutex 锁在覆盖 new 运算符时挂起

    我们有一个与我们的产品之一一起使用的内部内存管理器 内存管理器覆盖new and delete运算符 并且在单线程应用程序中运行良好 然而 我现在的任务是让它也适用于多线程应用程序 据我了解 以下伪代码应该可以工作 但即使使用try loc
  • 在 MYSQL / PHP 中设置最大执行时间

    我有一个 XML 文档 其中包含大约 48 000 个子文档 50MB 我运行一个 INSERT MYSQL 查询 为每个子项创建新条目 问题是由于它的大小 需要花费很多时间 执行后我收到这个 Fatal error Maximum exe
  • 如何将十六进制字符串转换为双精度型?

    我从 BLE 获取 0x0000 到 0x01c2 范围内的十六进制值到我的手机 aString 为了将其绘制在图表中 我必须将其转换为double 我已经尝试过这个方法 https stackoverflow com a 10708508
  • 在 bash 中查找并删除 .txt 文件 [重复]

    这个问题在这里已经有答案了 最近 我的外部硬盘驱动器上存有我的照片 大多数都在 DVD 上 但是 因为某些分区被破坏了 幸运的是 我能够使用 PhotoRec 另一个 Unix 分区实用程序 和 PDisk 将所有内容重新组合在一起 Pho
  • 在 Dart 中监听 JS CustomEvent

    我知道我的问题并不新鲜 但我在这里和互联网上找到的所有解决方案都不起作用 或者 我正在做一些完全错误的事情 我需要在 Dart 和 JS 之间创建通信 并且我很想使用事件 因为这个想法看起来很简洁 所以 我尝试了这个教程 https dar
  • SQL Server 2008 CTE 递归

    我正在尝试使用 SQL Server 2008 的 CTE 来执行我认为是困难的递归 我似乎无法理解这个问题 在下面的示例中 您可以假设固定深度为 3 不会低于该深度 在现实生活中 深度 更深 但仍然是固定的 在这个例子中我试图简化它一些
  • Scala 集合转发器和代理的用例

    Scala 的集合库包含转发器IterableForwarder http www scala lang org api current scala collection generic IterableForwarder html Tra
  • 从python查找Windows上程序的安装目录

    python 程序需要找到 openoffice org 的安装位置 该软件安装在 Windows XP 计算机上 做这个的最好方式是什么 您可以使用 winregWindows 上的模块 首先找到注册表中的路径 例如启动regedit e
  • Docker Compose 主机名命令不起作用

    我无法获取 Docker Composehostname https docs docker com compose compose file domainname hostname ipc mac address privileged r
  • Android 中的错误 -- 无法找到以下项的检测信息:ComponentInfo

    例如 我有一个应用程序将调用联系人并且必须选择其中一个联系人 但它并没有完全按照我想要的方式做 它向我显示错误Unable to find instrumentation info for ComponentInfo com sample
  • QSplitter 在 QWidget 和 QTabWidget 之间变得无法区分

    我将 QWidget 和 QTabWidget 放在一个水平拆分器中并排放置 并且分离器失去了形状 只有将鼠标悬停在分离器上才能知道有分离器 如何让它可见 Thanks 由于 QSplitterHandle 大多数人认为是 分割器 是从 Q
  • VS 2010 Tools 的 gacutil.exe 在哪里安装程序集?

    我使用 Visual Studio 2010 命令提示符的 gacutil exe 来安装程序集 我希望将程序集添加到C WINDOWS assemblies 但它被添加到C WINDOWS Microsoft NET assembly G
  • 如何在 IntelliJ 中运行同一个应用程序两次?

    我正在使用 IntelliJ 开发我的客户端 服务器应用程序 并且刚刚发现了Compounds 基本上我可以同时运行我的客户端和服务器 并且每次我想测试时它都可以节省我无用的操作 但是 我想用 2 个客户端和 1 个服务器来测试我的应用程序
  • Java 2D:将点 P 移动到靠近另一个点一定距离?

    将 Point2D Double x 距离移近另一个 Point2D Double 的最佳方法是什么 编辑 尝试编辑 但因维护而停机 不 这不是作业 我需要将飞机 A 移向跑道末端 C 并将其指向正确的方向 角度 a 替代文本http im
  • 兑换 + 点击一次 = :-(

    我有一个普通的 Windows 窗体程序 不是 VSTO 它使用单击一次进行部署 问题是 很多用户都遇到随机错误的问题 通常会指出 由于以下错误 IClassFactory 失败 80004005 我通过将模式更改为 隔离 来部署救赎 这似
  • 以百分比形式给出省略号

    我正在尝试省略span里面的元素td元素 问题是省略号有效当且仅当我给出span元素具有固定宽度 即宽度 以像素为单位 但在我的项目中 我不能使用固定宽度span元素 这span元素必须完全拉伸到各自的内部td可以通过使用的元素width
  • Unix - 在 shell 脚本中排序

    如何根据字段位置对文件进行排序 例如 我需要对下面给定的文件进行排序 基于第 4 5 和 8 名位置 请帮忙 我尝试了以下命令 它不起作用 sort d k 3 42 44 k 4 47 57 k 5 59 70 k 8 73 82 010
  • 如何从外部功能镜头转向功能镜头

    在我开始更好地使用函数式编程的过程中 在 SO 家族成员的帮助下 我发现了什么lens https bartoszmilewski com category lens 我什至通过下面的链接对其进行了一些研究 以了解有关它们的更多信息 htt
  • 如何与剧作家一起下载?

    我正在尝试使用以下命令从网站下载文件剧作家 https github com microsoft playwright 触发下载的按钮做了一些js 然后开始下载 使用单击按钮 click函数触发下载但显示错误 失败 下载错误 我尝试过使用