Puppeteer 启动后软件冻结

Software freeze after Puppeteer launch

我创建了一个小应用程序,它应该从 Internet trought 获取一些数据 Puppeteer Sharp,问题是在我实例化浏览器之后软件没有错误地冻结。

public partial class MainWindow : Window
{
    public Handler Handler { get; } = new Handler();

    public MainWindow()
    {
        InitializeComponent();            
    }

    private void Window_Loaded(object sender, RoutedEventArgs e)
    {
        Handler.Init(Handler).Wait();
    }
}

如您所见,我有 Handler,其中包含软件的所有属性:

public class Handler
{
    private static Url URL = new Url("https://www.diretta.it/");
    public static Browser Browser { get; set; }

    public async Task<bool> Init(Handler prop)
    {
        DotNetEnv.Env.Load("./config.env");

        // The problem's here
        Browser = await Puppeteer.LaunchAsync(new LaunchOptions
        {
            Headless = true,
            ExecutablePath = Environment.GetEnvironmentVariable("CHROME_PATH"),
        });

        return true;
    }
}

其中 CHROME_PATH 是这样的:CHROME_PATH="C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"

我做错了什么?我也有最新版本的 ChromePuppeteerSharp

将您的 Window_Loaded 事件方法更改为 async 并在 Init 方法上执行 await,事件处理程序方法除外。在这种情况下,使用 async void 而不是 async Task 是可以的。 - 参考 (Should I avoid 'async void' event handlers?):

private async void Window_Loaded(object sender, RoutedEventArgs e) 
{  
   await Handler.Init(Handler);
}