我正在尝试使用以下命令从网站下载文件剧作家 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.