首页 > 解决方案 > 如何访问 Mac 本机对话框

问题描述

我正在使用的应用程序通过本机 Mac 对话框上传文件。我似乎无法让 Puppeteer 在这个盒子周围移动。我曾尝试使用 process.on(dialog)、page.keyboard.press 和 robotsjs,但这些选项似乎都无法访问此对话框。process.on 永远不会触发 page.keyboard 没有做任何事情,我认为是因为该框不在页面上 robotsjs .. 我不确定为什么这也不起作用。

有没有人可以尝试任何其他建议或可行的解决方案?

图片

page.on('dialog', async (dialog) => {
    await robot.keyTap('tab');
    await robot.typeString(filename);
    await robot.keyTap('tab');
    await robot.keyTap('tab');
    await robot.keyTap('down');
    await robot.keyTap('enter');
});

标签: javascriptnode.jspuppeteer

解决方案


绕过对话框的唯一方法是使用dialog参数。例如:

page.on('dialog', dialog => {
    dialog.accept();
    //if it's a prompt
    dialog.accept('Foo');
    //or
    dialog.dismiss();
});

推荐阅读