Google Puppeteer中的多个Dropzone文件上传

时间:2019-02-25 21:18:27

标签: javascript dropzone.js puppeteer

我正在尝试通过Google Puppeteer在具有多个(三个)Dropzone实例的页面上上传文件。

第一个实例接受视频文件,而其他两个实例接受图像类型。

要将文件上传到视频Dropzone中,我正在使用运行良好的代码:

const fileSelector = '.dz-hidden-input[type=file][accept*=mp4]';
const element = await page.waitForSelector(fileSelector);
await element.uploadFile('/path/to/file.mp4');

现在,我尝试识别其他两个图像实例文件输入。要获取文件输入DOM句柄,我可以使用以下代码:

const dropzone1 = await page.$eval('#image-dropzone-1', dz => dz.dropzone.hiddenFileInput);`

由于这将返回DOM句柄dropzone1.uploadFile()不可用。似乎我需要拥有elementHandle才能使用此功能。

我想避免使用这样的选择器:

await page.waitForSelector('.dz-hidden-input[type=file][accept*=jpg]:nth-of-type(2)')`as it's not very stable.

有人知道我如何相应地识别字段吗?由于隐藏文件输入没有任何唯一属性。

0 个答案:

没有答案