如何使用带有 Selenium 的 C# 中的 ChromeOptions 修复您所在位置的文件下载错误

问题描述

背景 - 我正在尝试自动化与数据恢复相关的网站。因此,一旦用户登录,他/她就可以选择所需的文件,一旦启用下载按钮,用户就可以下载文件

问题 - 我能够成功下载文件,但是当我提供想要下载文件的所需路径时出现问题,我收到“Failed - Download Error " 在 Chrome 中使用 ChromeOptions。我想在我的自动化套件中下载文件,但目前我尝试的任何位置都会出现同样的错误

请注意 - 位置已经可用,文件类型可以是任何。

代码 -
以下是我尝试过的代码选项 -

-- 选项 1

ChromeOptions options = new ChromeOptions();
options.AddArguments("--browser.download.folderList=2");
options.AddArguments("--browser.helperApps.neverAsk.Savetodisk=image/jpg");
options.AddArguments("--browser.download.dir="+@"C:\\Users\\Administrator\\Downloads\\NewFolder\\");
options.AddUserProfilePreference("download.default_directory",@"C:\\Users\\Administrator\\Downloads\\NewFolder\\");

localDriver = new ChromeDriver("C:\\Downloads",options)
localDriver.Manage().Window.Maximize();

-- 选项 2

ChromeOptions options = new ChromeOptions();
options.AddUserProfilePreference("download.default_directory",@"C:\\Users\\Administrator\\Downloads\\NewFolder\\");
options.AddUserProfilePreference("download.prompt_for_download","false");
options.AddUserProfilePreference("disable-popup-blocking",true);

localDriver = new ChromeDriver("C:\\Downloads",options)
localDriver.Manage().Window.Maximize();

-- 选项 3

ChromeOptions options = new ChromeOptions();
options.AddArguments("--browser.download.folderList=2");
options.AddArguments("--browser.helperApps.neverAsk.Savetodisk=image/jpg");
options.AddArguments("--browser.download.dir="+@"C:\\Users\\Administrator\\Downloads\\NewFolder\\");
options.AddUserProfilePreference("download.default_directory",options)
localDriver.Manage().Window.Maximize();

我提出的问题 - How to download CSV file through Firefox Profile in Java

how to change file download location in Webdriver while using chrome driver/firefox driver

C# Selenium ChromeOptions not setting/changing default download location

问题 -

1.) 如何使用 ChromeOptions 或 FireFox Options 确保文件下载成功。

2.) 是否有任何关于在 C# 中使用 chrome 选项的标准文档,因为在许多博客中,这些值被称为字符串,而在某些博客中它是布尔值。

3.) 针对这个问题的任何其他替代方法,我可以用来解决这个文件下载。

解决方法

对于 C# 中的解决方案,我们可以使用以下代码 -

var options = new ChromeOptions();
options.AddUserProfilePreferences("download.default_directory",@"path_to_your_location");
options.AddUserProfilePreferences("download.prompt_for_download",false);
options.AddUserProfilePreferences("download.directory_upgrade",true);

请注意:- Path_to_your_location 必须完整,例如您可能试图引用项目中的某个位置,但仍使用绝对路径,例如您可能指的是项目中的某个位置,例如“.\DataDownloaded”,但它应该是 C:\Users\User1\MyProject\DataDownloaded”,这样您就不会收到此错误。另外请注意“\”和“\\”在您的路径中,在此选项中只有“\”有效。