有没有办法用 Puppeteer 在 React Dropzone 中上传文件?
Is there a way to upload a file in React Dropzone with Puppeteer?
我在网上尝试了一些建议,但 none 奏效了。
目前我正在尝试这个:
await page.goto('http://localhost:3000/');
await page.waitForSelector('input[type=file]');
const fileInput = await page.$('input[type=file]');
await fileInput.uploadFile("file.png");
这不起作用(或做任何事情)。
有没有办法做到这一点?
似乎dropzone需要一点推动。您可以触发一个 change
,以便 dropzone 知道文件输入中有一个新文件。
(async () => {
const browser = await puppeteer.launch({
headless: false,
ignoreDefaultArgs: true
});
const page = await browser.newPage();
await page.goto('https://react-dropzone.js.org/');
await page.waitForSelector('input[type=file]');
const fileInput = await page.$('#rsg-root > div > main > section > section:nth-child(3) > section > section:nth-child(1) > article > div:nth-child(2) > div.rsg--preview-60 > div > section > div > input[type=file]');
await fileInput.uploadFile("./test/playground.js");
///HERE
await fileInput.evaluate(upload => upload.dispatchEvent(new Event('change', { bubbles: true })));
///
await page.close();
})();
我在网上尝试了一些建议,但 none 奏效了。
目前我正在尝试这个:
await page.goto('http://localhost:3000/');
await page.waitForSelector('input[type=file]');
const fileInput = await page.$('input[type=file]');
await fileInput.uploadFile("file.png");
这不起作用(或做任何事情)。
有没有办法做到这一点?
似乎dropzone需要一点推动。您可以触发一个 change
,以便 dropzone 知道文件输入中有一个新文件。
(async () => {
const browser = await puppeteer.launch({
headless: false,
ignoreDefaultArgs: true
});
const page = await browser.newPage();
await page.goto('https://react-dropzone.js.org/');
await page.waitForSelector('input[type=file]');
const fileInput = await page.$('#rsg-root > div > main > section > section:nth-child(3) > section > section:nth-child(1) > article > div:nth-child(2) > div.rsg--preview-60 > div > section > div > input[type=file]');
await fileInput.uploadFile("./test/playground.js");
///HERE
await fileInput.evaluate(upload => upload.dispatchEvent(new Event('change', { bubbles: true })));
///
await page.close();
})();