我在 Puppeteer 脚本的末尾。我只需要点击确认对话框中的 OK 按钮(请参见图像链接)或按下回车键。为了按下回车键,我尝试了这里的每个建议 Pressing Enter button in puppeteer,但没有任何作用。我使用普通浏览器检查过,按下回车键可以正常工作。有什么建议吗?
感谢 Thomas 的帮助解决了问题!请参见以下解决方案。
我在 Puppeteer 脚本的末尾。我只需要点击确认对话框中的 OK 按钮(请参见图像链接)或按下回车键。为了按下回车键,我尝试了这里的每个建议 Pressing Enter button in puppeteer,但没有任何作用。我使用普通浏览器检查过,按下回车键可以正常工作。有什么建议吗?
感谢 Thomas 的帮助解决了问题!请参见以下解决方案。
这是一个确认对话框。请查看对话框处理。
您可以像这样按下“确定”按钮:
page.on('dialog', async dialog => {
await dialog.accept();
});
将代码放在触发对话框的动作前面(否则当对话框事件被触发时,事件处理程序将无法注册)。Log(robot, "js duckpunch alert dialog ");
var jsExec = @"
function alert(msg) {
console.log('dialog: '+msg)
}
";
await ExecJsExpression(page, jsExec, settings.robot);
Log(robot, "js duckpunch alert dialog done ");
...
在这里,Log是某种审计日志功能。变量robot可以忽略,它只是在我的示例中保存状态。
...
而 ExecJsExpression 如下:
private static async Task ExecJsExpression(Page page, string jsExec, RobotState robot) {
Log(robot, "js exec [" + jsExec + "]");
Log(robot, "js exec cleaned [" + jsExec + "]");
try {
await page.EvaluateExpressionAsync(jsExec);
Log(robot, "js exec [" + jsExec + "] ok");
} catch (Exception e) {
Log(robot, "Failed to exec js expr [" + jsExec + "]");
throw;
}
}