【发布时间】:2018-06-27 01:52:18
【问题描述】:
在我的 HTML 中,我有一个如下的输入元素:
<input id="input-44" name="input44[]" type="file" multiple>
在我的 JavaScript 代码中(跳过一些样板文件),以下工作:
const elementHandle = await page.$("#input-44");
elementHandle.uploadFile("/path/to/file");
await page.click("#upload-button");
根据文档:
https://github.com/GoogleChrome/puppeteer/blob/master/docs/api.md
uploadFiles 应该能够接受多个文件
当我将代码更改为:
const elementHandle = await page.$("#input-44");
const files = ["/path/to/file", "/path/to/file2"];
elementHandle.uploadFile(...files);
await page.click("#upload-button");
上传不再起作用。这是为什么呢?
【问题讨论】:
-
我已经在我的 Redmine 任务中测试了您的文件上传代码,它确实可以上传文件 (pptr v1.5)。您是否尝试过记录错误,在 headful 模式下运行代码? - 可能还有其他错误
-
也许这是您代码中的拼写错误,但鉴于
uploadFile与所有其他 puppeteer 方法一样返回Promise,您为什么不在该行代码中使用await?
标签: javascript node.js chromium puppeteer headless