Я пытаюсь загрузить файл через 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 *, 1011 * недоступен.Кажется, мне нужно иметь elementHandle
, чтобы использовать эту функцию.
Я бы хотел избежать использования селектора, подобного этому:
await page.waitForSelector('.dz-hidden-input[type=file][accept*=jpg]:nth-of-type(2)')`as it's not very stable.
Кто-нибудь знает, как я могу определить полясоответственно?Поскольку скрытые файлы не имеют уникальных атрибутов.