如何使用 Puppeteer Sharp 上传文件?

How do I upload a file with Puppeteer Sharp?

我正在使用 Puppeteer Sharp 来测试我的网络应用程序。我的网络应用程序有一个按钮可以触发 <input type="file"> 让用户 select 上传一个 CSV 文件。

在通过 Puppeteer Sharp 进行测试时如何使用它来上传文件?仅单击按钮是不够的,因为我需要为文件浏览对话框提供文件路径。

您可以使用 Page.WaitForFileChooserAsync 与文件选择器交互。要记住的重要一点是,在单击 <input type="file">.

之前 ,您需要准备好文件选择器

例如:

var fileChooserDialogTask = page.WaitForFileChooserAsync(); // Do not await here

await Task.WhenAll(fileChooserDialogTask, page.ClickAsync("input[type='file']"));

var fileChooser = await fileChooserDialogTask;
await fileChooser.AcceptAsync(pathToFile);

如果您在调用 WaitForFileChooserAsync 之前尝试单击 <input type="file">,您将停留在模态文件选择器对话框中等待您进行操作。