访问Windows上传文件对话框

时间:2018-07-19 05:03:58

标签: node.js whatsapp puppeteer

我正在使用node.js puppeteer 库来处理WhatsApp Web。除了设法通过上载对话框上载文件之外,我已经设法处理了整个页面。

我尝试了多种方法来处理窗口对话框,包括VBS,批处理,发送键等。

有什么办法可以在对话框的文本行内输入文本,然后也按“打开” https://i.stack.imgur.com/cRVNJ.jpg][1]

这是我的代码,直到WhatsApp中的添加文件(原始代码)

const page = await browser.newPage();

await page.setUserAgent('Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3264.0 Safari/537.36');

page.goto('https://web.whatsapp.com/', { waitUntil: 'networkidle2', timeout: 0 }).then(async function (response) {

await page.waitFor(networkIdleTimeout);

await page.waitFor(user_chat_selector);
await page.click(user_chat_selector);

await page.waitFor(networkIdleTimeout);
await page.keyboard.type('Testing');

await page.waitFor(networkIdleTimeout);
await page.keyboard.press('Enter');

await page.waitFor(networkIdleTimeout);
await page.waitFor(pin_attach);
await page.click(pin_attach);

await page.waitFor(networkIdleTimeout);
await page.waitFor(add_image_icon);
await page.click(add_image_icon);

//await page.waitFor(networkIdleTimeout);    
// await page.keyboard.type("a");
})

1 个答案:

答案 0 :(得分:1)

您不需要打开真实的对话框,这里有一个method for uploading files

 const elementHandle = await page.$('input');
 await elementHandle.uploadFile("/path/to/file");