我正在使用Puppeteer Sharp来测试我的网络应用程序。我的网络应用程序有一个按钮,可以触发<input type="file">
让用户选择要上传的 CSV 文件。
通过 Puppeteer Sharp 进行测试时,如何使用它来上传文件?仅单击按钮是不够的,因为我需要为文件浏览对话框提供文件的路径。
我正在使用Puppeteer Sharp来测试我的网络应用程序。我的网络应用程序有一个按钮,可以触发<input type="file">
让用户选择要上传的 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);
<input type="file">
如果您在调用之前尝试单击WaitForFileChooserAsync
,您将卡在等待您执行某项操作的模态文件选择器对话框中。