无法使用 C# 语言在剧作家自动化中下载文件

问题描述

我无法使用 playwright 自动化从浏览器下载文件
我正在使用 C# 语言进行自动化。 我已经使用 acceptDownload 创建了浏览器上下文,并提供了文件下载的目录路径。基本上代码停留在 RunAndWaitForDownloadAsync 方法中,之后会发生注意。 请在下面找到我用来下载文件内容

//While creating browser context
    
var playwright = await Playwright.CreateAsync();  
var browser = await playwright.Chromium.LaunchAsync(new browserTypeLaunchOptions()   
{ 
  Headless = false,DownloadsPath = Directory.GetCurrentDirectory() 
});
    
var context = await browser.NewContextAsync(new browserNewContextOptions() { AcceptDownloads = true });
    
//For file download used below code.
    
var download = await _page.RunAndWaitForDownloadAsync(async () =>
{
   await _page.ClickAsync("#btnId");
},new PageRunAndWaitForDownloadOptions() { Timeout = 10000 });
    
var tmpDir = Directory.GetCurrentDirectory();
string userPath = Path.Combine(tmpDir,"download.docx");
await download.SaveAsAsync(userPath);    
string path = await download.PathAsync();
   Assert.True(new FileInfo(path).Exists);
    
//One more option tried as below.
    
var downloadTask = _page.WaitForDownloadAsync();
await WhenAll(downloadTask,_page.ClickAsync("#btnSubmission")).ConfigureAwait(false);
var download = downloadTask.Result;
var tmpDir = Directory.GetCurrentDirectory();
string userPath = Path.Combine(tmpDir,"download.docx");
await download.SaveAsAsync(userPath);
string path = await download.PathAsync();
Assert.True(new FileInfo(path).Exists);
    
//Supporting method
public static async Task<T> WhenAll<T>(Task<T> task1,Task task2)
{
  await Task.WhenAll(task1,task2).ConfigureAwait(false);
  return task1.Result;
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)