2

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

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

4

1 回答 1

3

您可以使用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);

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

于 2020-06-19T16:50:57.957 回答