javascript - 如何访问 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');
});
解决方案
绕过对话框的唯一方法是使用dialog
参数。例如:
page.on('dialog', dialog => {
dialog.accept();
//if it's a prompt
dialog.accept('Foo');
//or
dialog.dismiss();
});
推荐阅读
- google-chrome-extension - 从扩展中获取鼠标悬停时元素的css id
- android - 玩游戏服务成就不起作用
- python - 如何调用包含不同类中的函数的函数?
- flutter - Text() 出错 - 必须向 Text 小部件提供非空字符串
- javascript - Chrome 停止从 StackOverflow 片段下载文件
- c++ - 实时进程,但几十毫秒没有工作
- java - 如何比较if语句java中的多个条件?
- apache-spark - Minikube 到对象存储连接超时错误与 Spark 测试
- kotlin - 使用 finish 传递数组意图数据
- c - 结构指针中的 C 动态内存分配