首页 > 解决方案 > 如何使用 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",@"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();

我提到的问题 - 如何在 Java 中通过 Firefox Profile 下载 CSV 文件

如何在使用 chrome 驱动程序/firefox 驱动程序时更改 Webdriver 中的文件下载位置

C# Selenium ChromeOptions 未设置/更改默认下载位置

问题 -

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

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

3.)我可以采取任何其他替代方法来解决此文件下载问题。

标签: c#selenium-webdriverselenium-chromedrivermstestchrome-options

解决方案


对于 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“那么你不会得到这个错误。另外请注意路径中的“ \”和“ \\”,在这个选项中只有“ \”有效。


推荐阅读