Puppeteer按下回车键或点击对话框的确认按钮。

7

确认按钮对话框

我在 Puppeteer 脚本的末尾。我只需要点击确认对话框中的 OK 按钮(请参见图像链接)或按下回车键。为了按下回车键,我尝试了这里的每个建议 Pressing Enter button in puppeteer,但没有任何作用。我使用普通浏览器检查过,按下回车键可以正常工作。有什么建议吗?

感谢 Thomas 的帮助解决了问题!请参见以下解决方案。

2个回答

11

这是一个确认对话框。请查看对话框处理

您可以像这样按下“确定”按钮:

page.on('dialog', async dialog => {
    await dialog.accept();
});
将代码放在触发对话框的动作前面(否则当对话框事件被触发时,事件处理程序将无法注册)。

0
注意,我在puppeteer sharp上使用的另一种方法是通过重新定义警告对话框来解决问题。
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;
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接