我正在尝试通过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.
有人知道我如何相应地识别字段吗?由于隐藏文件输入没有任何唯一属性。