Puppeteer 处理文件上传

原创 2019年 5月 1日
标签: PUPPETEER
本文发布至今已有5年零203天,可能不再适用,请谨慎对待。

先打个广告:欢迎关注我的公众号,参与 文史大挑战 趣味题目。使用方法见 这篇文章

公众号:晚花行乐

正文开始:

在 《Puppeteer 处理文件下载》 一文后,我们看看如何处理文件上传问题。好在 Puppeteer 直接提供了上传的方法,我们只要定位到对应的上传元素后,就可以启动上传过程,非常的方便。

浏览器中,处理上传功能的原生控件,是下面这种类型:

HTML 代码是:

<input type=file >

所以只要找到这个元素,就能利用 puppeteer 的元素 upload 方法,实现自动上传文件。

寻找上传控件元素

可以用下面的方法寻找控件

let input = await page.waitForXPath('//input[@type="file"]')

实施上传

可以用下面的方法实施上传

await input.uploadFile('/path/to/file')

相对路径

uploadFile 函数的参数如果是相对路径(比如只有文件名),将是相对当前工作目录,也就是 node 的启动目录。如果不确定是哪个目录,可以通过下面的语句确认:

console.log(`Current directory: ${process.cwd()}`);

(完)

如果您对本文有疑问或者寻求合作,欢迎 联系邮箱邮箱已到剪贴板

标签: PUPPETEER
给个免费的赞吧~

精彩评论

本站 是个人网站,采用 署名协议 CC-BY-NC 授权。
欢迎转载,请保留原文链接 https://www.lfhacks.com/tech/puppeteer-file-upload/ ,且不得用于商业用途。