首页 > 解决方案 > 使用 Puppeteer-sharp 捕捉 A2HS 对话

问题描述

我想做一个无头 PWA 安装。

使用 Puppeteer-sharp,我能够单击内容中的 PWA 安装按钮以调出 A2HS 对话框。

我认为我可以使用“Dialog”类处理此对话框,因为 beforeinstallprompt 对象正在使用 prompt() 显示它,但我不能。

如何捕捉 A2HS 对话框?

[A2HS 对话框]
https://developers.google.com/web/updates/images/2018/06/a2hs-dialog-cropped.png

这是我的代码。(它可以捕获 window.prompt() 和 window.confirm()。)

using (var browser = await Puppeteer.LaunchAsync(options))
using (var page = await browser.NewPageAsync())
{
    await page.GoToAsync("...");

    page.Dialog += new EventHandler<DialogEventArgs>(async (sender, args) => {
        // for test
        var alertMessage = args.Dialog.Message;
        Debug.WriteLine("*** {}", alertMessage);
        await args.Dialog.Dismiss();
    });

    var btnSelector = "#pwa_install_button";
    await page.WaitForSelectorAsync(btnSelector);
    await page.ClickAsync(btnSelector);
...
}

标签: c#progressive-web-appspuppeteer-sharp

解决方案


推荐阅读