Несколько загрузок файлов Dropzone в Google Puppeteer - PullRequest
0 голосов
/ 26 февраля 2019

Я пытаюсь загрузить файл через 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.

Кто-нибудь знает, как я могу определить полясоответственно?Поскольку скрытые файлы не имеют уникальных атрибутов.

...