c# - 如何使用 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# 中的解决方案,我们可以使用以下代码 -
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
“那么你不会得到这个错误。另外请注意路径中的“ \
”和“ \\
”,在这个选项中只有“ \
”有效。
推荐阅读
- log4j - 如何使用编程配置方式在 log4j2 中配置 KafkaAppender?
- javascript - 使用 javascript 直接将超过 50 MB 的文件上传到 S3 存储桶
- css - 如何在 VS Code 编辑器中按标题级别更改 Markdown 标题颜色?
- hadoop - Hive:以字符串格式过滤指定日期之间的数据。哪个优化了,为什么?
- java - 如何在资源中动态编译和运行带有 .class 文件的 .java 文件?
- python - 将特定时区的日期时间转换为python中的unix时间戳
- javascript - 在 ReactJS 中获取“RangeError:超出最大调用堆栈大小”
- html - 如何发送带有 PDF 附件的电子邮件 laravel?
- ios - 在 SwiftUI 中,如何执行手势但将手势转发到其后面的视图?
- c++ - 如何修复 QT 中的 GL.h 编译错误?